* TCP stack support on DPDK @ 2023-01-20 8:11 Sam Kirubakaran 2023-01-20 11:31 ` Thomas Monjalon 2023-01-23 10:18 ` Liang Ma 0 siblings, 2 replies; 8+ messages in thread From: Sam Kirubakaran @ 2023-01-20 8:11 UTC (permalink / raw) To: dev [-- Attachment #1: Type: text/plain, Size: 391 bytes --] Hi team, My name is Sam and I am a Software Engineer. Currently, we are trying to improve the performance of proprietary in-house tools by using DPDK but we are not sure whether DPDK has support for TCP stack. If yes, could you please point me to the link of apis alone. I will take it from there. Could you please guide me on this? Your response would be highly appreciated! Regards, Sam [-- Attachment #2: Type: text/html, Size: 503 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: TCP stack support on DPDK 2023-01-20 8:11 TCP stack support on DPDK Sam Kirubakaran @ 2023-01-20 11:31 ` Thomas Monjalon 2023-01-20 16:51 ` Sam Kirubakaran 2023-01-23 10:18 ` Liang Ma 1 sibling, 1 reply; 8+ messages in thread From: Thomas Monjalon @ 2023-01-20 11:31 UTC (permalink / raw) To: Sam Kirubakaran; +Cc: dev 20/01/2023 09:11, Sam Kirubakaran: > Hi team, > > My name is Sam and I am a Software Engineer. > Currently, we are trying to improve the performance of proprietary in-house > tools by using DPDK but we are not sure whether DPDK has support for TCP > stack. No there is no stack inside DPDK. You can find some projects here: https://www.dpdk.org/ecosystem/#projects ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: TCP stack support on DPDK 2023-01-20 11:31 ` Thomas Monjalon @ 2023-01-20 16:51 ` Sam Kirubakaran 0 siblings, 0 replies; 8+ messages in thread From: Sam Kirubakaran @ 2023-01-20 16:51 UTC (permalink / raw) To: Thomas Monjalon; +Cc: dev [-- Attachment #1: Type: text/plain, Size: 595 bytes --] Hi Thomas, Thank you so much for your response :) I will go through the link you shared and make use of it! Regards, Sam On Fri, Jan 20, 2023 at 6:48 PM Thomas Monjalon <thomas@monjalon.net> wrote: > 20/01/2023 09:11, Sam Kirubakaran: > > Hi team, > > > > My name is Sam and I am a Software Engineer. > > Currently, we are trying to improve the performance of proprietary > in-house > > tools by using DPDK but we are not sure whether DPDK has support for TCP > > stack. > > No there is no stack inside DPDK. > You can find some projects here: https://www.dpdk.org/ecosystem/#projects > > > [-- Attachment #2: Type: text/html, Size: 1086 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: TCP stack support on DPDK 2023-01-20 8:11 TCP stack support on DPDK Sam Kirubakaran 2023-01-20 11:31 ` Thomas Monjalon @ 2023-01-23 10:18 ` Liang Ma 2023-01-24 7:54 ` Sam Kirubakaran 1 sibling, 1 reply; 8+ messages in thread From: Liang Ma @ 2023-01-23 10:18 UTC (permalink / raw) To: Sam Kirubakaran; +Cc: dev On Fri, Jan 20, 2023 at 01:41:56PM +0530, Sam Kirubakaran wrote: > Hi team, > > My name is Sam and I am a Software Engineer. > Currently, we are trying to improve the performance of proprietary in-house > tools by using DPDK but we are not sure whether DPDK has support for TCP > stack. > If yes, could you please point me to the link of apis alone. I will take it > from there. > Could you please guide me on this? Your response would be highly > appreciated! DPDK itself has no TCP stack. However, there are some userspace TCP stack project which support DPDK. TPDK/Seastar/fullstack etc. > > Regards, > Sam ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: TCP stack support on DPDK 2023-01-23 10:18 ` Liang Ma @ 2023-01-24 7:54 ` Sam Kirubakaran 2023-02-16 14:39 ` Liang Ma 0 siblings, 1 reply; 8+ messages in thread From: Sam Kirubakaran @ 2023-01-24 7:54 UTC (permalink / raw) To: Liang Ma; +Cc: dev [-- Attachment #1: Type: text/plain, Size: 1133 bytes --] Hi Liang, Thank you so much for your response. I would like to convert our in-house tool into a high performance traffic generator and it is written in Python. Is it possible to use any of the user space TCP stack by compiling into shared libraries and access it via Python using ctypes? Could you please let me know any viable solution to make use of user space TCP stack compatible with Python? Regards, Sam On Mon, Jan 23, 2023 at 3:48 PM Liang Ma <liangma@liangbit.com> wrote: > On Fri, Jan 20, 2023 at 01:41:56PM +0530, Sam Kirubakaran wrote: > > Hi team, > > > > My name is Sam and I am a Software Engineer. > > Currently, we are trying to improve the performance of proprietary > in-house > > tools by using DPDK but we are not sure whether DPDK has support for TCP > > stack. > > If yes, could you please point me to the link of apis alone. I will take > it > > from there. > > Could you please guide me on this? Your response would be highly > > appreciated! > DPDK itself has no TCP stack. However, there are some userspace TCP > stack project which support DPDK. TPDK/Seastar/fullstack etc. > > > > Regards, > > Sam > [-- Attachment #2: Type: text/html, Size: 1589 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: TCP stack support on DPDK 2023-01-24 7:54 ` Sam Kirubakaran @ 2023-02-16 14:39 ` Liang Ma 2023-02-16 15:01 ` Van Haaren, Harry 0 siblings, 1 reply; 8+ messages in thread From: Liang Ma @ 2023-02-16 14:39 UTC (permalink / raw) To: Sam Kirubakaran; +Cc: dev On Tue, Jan 24, 2023 at 01:24:38PM +0530, Sam Kirubakaran wrote: > Hi Liang, > > Thank you so much for your response. > I would like to convert our in-house tool into a high performance traffic > generator and it is written in Python. > Is it possible to use any of the user space TCP stack by compiling into > shared libraries and access it via Python using ctypes? > Could you please let me know any viable solution to make use of user space > TCP stack compatible with Python? sorry, I have no idea bout the python bind with DPDK, but there are some Lua bind with DPDK. Like Moonwire. > > Regards, > Sam ^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: TCP stack support on DPDK 2023-02-16 14:39 ` Liang Ma @ 2023-02-16 15:01 ` Van Haaren, Harry 2023-02-16 21:00 ` Liang Ma 0 siblings, 1 reply; 8+ messages in thread From: Van Haaren, Harry @ 2023-02-16 15:01 UTC (permalink / raw) To: Liang Ma, Sam Kirubakaran; +Cc: dev > -----Original Message----- > From: Liang Ma <liangma@liangbit.com> > Sent: Thursday, February 16, 2023 2:40 PM > To: Sam Kirubakaran <samkirubakaranl@gmail.com> > Cc: dev@dpdk.org > Subject: Re: TCP stack support on DPDK > > On Tue, Jan 24, 2023 at 01:24:38PM +0530, Sam Kirubakaran wrote: > > Hi Liang, > > > > Thank you so much for your response. > > I would like to convert our in-house tool into a high performance traffic > > generator and it is written in Python. > > Is it possible to use any of the user space TCP stack by compiling into > > shared libraries and access it via Python using ctypes? > > Could you please let me know any viable solution to make use of user space > > TCP stack compatible with Python? Liang replied: > sorry, I have no idea bout the python bind with DPDK, but there are some > Lua bind with DPDK. Like Moonwire. Moongen: https://github.com/emmericp/MoonGen and its "library form" Libmoon may be of interest yes! (https://github.com/libmoon/libmoon) Note that LUA has certain properties that are nice for packet processing (soft-realtime capable). Python unfortunately does not have the same properties by default (but likely can be configured/used/extended to mitigate impact). This is only relevant if you want to generate packets "on the fly" with very low jitter (potentially caused by GarbageCollectors from Python runtimes). Looking at the bigger picture: 1) What are your requirements around performance for generating traffic? 2) And what are the reasons that existing projects are not sufficient? Trex is very configurable for many things: https://github.com/cisco-system-traffic-generator As you likely know, writing a good reliable traffic generation tool is a lot of work, and re-using existing work is likely a good idea. There is a list of DPDK users/libraries etc on the official DPDK site here; https://www.dpdk.org/ecosystem/ Some of these libraries might provide a good starting point for your needs? My experience when developing a simple/minimal traffic generator for DPDK was that although It might seem that generating of packets can be done in Python/other-interpreted-language, it causes performance issues in the end. Imagine generating 1000 flows, the checksum of each packet is going to be different. That leaves two options: 1) Generate all packets in advance, and "replay" them from memory (memory intensive, and no other customization potential as it corrupts checksums!) 2) Calculate checksums on the fly in C or other high performance language: the complexity of checksum calculations, offsets etc must be present in high-perf language, removes benefit of using Python/high-level language for "quick" packet generation. The results of the Proof-of-Concept that Ronan Randles & I done is here, called TGen. I have Presented my experience of "handmade" traffic generators as part of DPDK userspace: - Video: https://www.youtube.com/watch?v=Djcjq59H1uo - Patches: http://patches.dpdk.org/project/dpdk/cover/20220121103122.2926856-1-ronan.randles@intel.com/ Hope the above information is of use! Regards, -Harry ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: TCP stack support on DPDK 2023-02-16 15:01 ` Van Haaren, Harry @ 2023-02-16 21:00 ` Liang Ma 0 siblings, 0 replies; 8+ messages in thread From: Liang Ma @ 2023-02-16 21:00 UTC (permalink / raw) To: Van Haaren, Harry; +Cc: Sam Kirubakaran, dev On Thu, Feb 16, 2023 at 03:01:28PM +0000, Van Haaren, Harry wrote: > > -----Original Message----- > > From: Liang Ma <liangma@liangbit.com> > > Sent: Thursday, February 16, 2023 2:40 PM > > To: Sam Kirubakaran <samkirubakaranl@gmail.com> > > Cc: dev@dpdk.org > > Subject: Re: TCP stack support on DPDK > > > > On Tue, Jan 24, 2023 at 01:24:38PM +0530, Sam Kirubakaran wrote: > > > Hi Liang, > > > > > > Thank you so much for your response. > > > I would like to convert our in-house tool into a high performance traffic > > > generator and it is written in Python. > > > Is it possible to use any of the user space TCP stack by compiling into > > > shared libraries and access it via Python using ctypes? > > > Could you please let me know any viable solution to make use of user space > > > TCP stack compatible with Python? > > Liang replied: > > sorry, I have no idea bout the python bind with DPDK, but there are some > > Lua bind with DPDK. Like Moonwire. > > Moongen: https://github.com/emmericp/MoonGen and its "library form" > Libmoon may be of interest yes! (https://github.com/libmoon/libmoon) > > Note that LUA has certain properties that are nice for packet processing (soft-realtime capable). > Python unfortunately does not have the same properties by default (but likely can be configured/used/extended to mitigate impact). > This is only relevant if you want to generate packets "on the fly" with very low jitter (potentially caused by GarbageCollectors from Python runtimes). +1 > Looking at the bigger picture: > 1) What are your requirements around performance for generating traffic? > 2) And what are the reasons that existing projects are not sufficient? > Trex is very configurable for many things: https://github.com/cisco-system-traffic-generator > > As you likely know, writing a good reliable traffic generation tool is a lot of work, > and re-using existing work is likely a good idea. There is a list of DPDK users/libraries etc on the > official DPDK site here; https://www.dpdk.org/ecosystem/ Some of these libraries might > provide a good starting point for your needs? > > My experience when developing a simple/minimal traffic generator for DPDK was that although > It might seem that generating of packets can be done in Python/other-interpreted-language, it > causes performance issues in the end. Imagine generating 1000 flows, the checksum of each > packet is going to be different. That leaves two options: > 1) Generate all packets in advance, and "replay" them from memory (memory intensive, and no other customization potential as it corrupts checksums!) > 2) Calculate checksums on the fly in C or other high performance language: the complexity of checksum calculations, offsets etc must be present in high-perf language, removes benefit of using Python/high-level language for "quick" packet generation. > > The results of the Proof-of-Concept that Ronan Randles & I done is here, called TGen. I have > Presented my experience of "handmade" traffic generators as part of DPDK userspace: > - Video: https://www.youtube.com/watch?v=Djcjq59H1uo > - Patches: http://patches.dpdk.org/project/dpdk/cover/20220121103122.2926856-1-ronan.randles@intel.com/ > > Hope the above information is of use! Regards, -Harry > ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-02-16 21:00 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-01-20 8:11 TCP stack support on DPDK Sam Kirubakaran 2023-01-20 11:31 ` Thomas Monjalon 2023-01-20 16:51 ` Sam Kirubakaran 2023-01-23 10:18 ` Liang Ma 2023-01-24 7:54 ` Sam Kirubakaran 2023-02-16 14:39 ` Liang Ma 2023-02-16 15:01 ` Van Haaren, Harry 2023-02-16 21:00 ` Liang Ma
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).