> -----Original Message-----
> From: Thomas Monjalon <tho...@monjalon.net>
> Sent: Friday, December 17, 2021 4:19 PM
> To: Randles, Ronan <ronan.rand...@intel.com>; Van Haaren, Harry
> <harry.van.haa...@intel.com>
> Cc: Jerin Jacob <jerinjac...@gmail.com>; dev@dpdk.org; Richardson, Bruce
> <bruce.richard...@intel.com>
> Subject: Re: [PATCH 05/12] gen: add raw packet data API and tests
> 
> 17/12/2021 12:40, Van Haaren, Harry:
> > I could ramble on a bit more, but mostly diminishing returns I think...
> > I'll just use this email as a reply to Thomas' tweet;
> > https://twitter.com/tmonjalo/status/1337313985662771201
> 
> My original question was to know available applications,
> not integrating such application in the DPDK repository.
> 
> I may me miss something obvious,
> but I don't understand why trying to add a user app inside DPDK repo.

There are likely a few points-of-view on this particular topic; and I'm glad
you mention it so we can discuss it clearly here.

There are two main parts to this patchset, the first is a packet generation 
library,
with an easy to use string-based syntax. The *library* is designed to be 
extended in
future to a range of "useful stuff" to do while generating packets. The packet 
generation
*application* should have minimal features, and focus on ease-of-use (as 
suggested below).

In order to test the DPDK code, we need a variety of unit tests, and a 
sample-application to show
users how to use the library (as well as docs etc). For me, the interesting 
part is that it is a small
step from a simple sample-app just for testing to a minimal tool for high-rate 
packet generation. 

I think many users of DPDK first install DPDK, then wish for a tool to generate 
high traffic rates
to test DPDK, and end up with a usability problem; DPDK does not include a 
usable packet generator.

To highlight this point; our own DPDK Docs simply ignore the requirement of 
packet-generation to
actually have packets processed by skeleton: 
http://doc.dpdk.org/guides/sample_app_ug/skeleton.html 
Our "quick start" on the website uses PCAP vdevs (avoiding the problem)  
https://core.dpdk.org/doc/quick-start/
Even searching the entire docs for "generate packet" doesn't give any 
relevant/useful results:
http://doc.dpdk.org/guides/search.html?q=generate+packet&check_keywords=yes&area=default#
 

Users could internet-search & find pktgen, moongen, trex, or similar tools. 
These tools are fantastic for experienced
developers such as devs on this mailing list - we should *NOT* replicate these 
complex tools in DPDK itself. However,
building any tool outside of DPDK repo requires more effort; another git-clone, 
another set of dependencies to install,
perhaps another build-system to get used to. Particularly for people starting 
out with DPDK (who are likely finding
it difficult to learn the various hugepage/PCI-binding etc), this is yet 
another problem to solve, or to give up.

So my proposal is as follows; let us add a simple DPDK traffic generator to 
DPDK. We can define its scope
and its intended use, limiting the scope and capabilities. As before, I do NOT 
think it a good idea to build a
complex and feature-rich packet generator. I do feel it useful to have an 
easy-to-use application in DPDK that
is particularly designed for generating specific packets, at specific 
line-rates, and reports mpps returned.

Thoughts on adding an small scope-limited application to DPDK enabling 
ease-of-packet-generation for new users?

Regards, -Harry

Reply via email to