From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 3D742A034C; Tue, 14 Dec 2021 15:57:55 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BA57E40041; Tue, 14 Dec 2021 15:57:54 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id 3643D4003C for ; Tue, 14 Dec 2021 15:57:52 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1639493872; x=1671029872; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=FnE8qOJKw1alewwgn99tXfMLUK1/chBiX52OdsTFsMo=; b=iNXf+Ni1RBfhtQpmLdSvMjmnMd+4QkcJECtBkOBt8p+mbLF0Klg/qXsN N3KP0zqNQ6IwVbfb6t8PFXs3D4GLI8CPcoGufG52QI5hN8WUb6fQ9TGfY 0Ob5xYMP0aIqrrQnQTf/uP76t0LuYccdK9bEcnIzXk16V/nt3LDJuS+xT ONghsUg6nODJYM2uSAoFqjfBSCh0Pc9SE2iZqDSDQ0WmsbSf3lc2G4XuY AKNhV+5bg6meC+/+TU3SWvhJovFvZfouVzCg08tx4WN2SfloqaLeOhfCU jxa9QlYxhyH7JFcT5V47YWS/oG/BrVZHbSJmqQg7DtqOnzFAyR8Kwq8O3 w==; X-IronPort-AV: E=McAfee;i="6200,9189,10197"; a="263133262" X-IronPort-AV: E=Sophos;i="5.88,205,1635231600"; d="scan'208";a="263133262" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Dec 2021 06:57:51 -0800 X-IronPort-AV: E=Sophos;i="5.88,205,1635231600"; d="scan'208";a="682084591" Received: from bricha3-mobl.ger.corp.intel.com ([10.252.19.205]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-SHA; 14 Dec 2021 06:57:50 -0800 Date: Tue, 14 Dec 2021 14:57:46 +0000 From: Bruce Richardson To: Ronan Randles Cc: dev@dpdk.org, harry.van.haaren@intel.com Subject: Re: [PATCH 00/12] add packet generator library and example app Message-ID: References: <20211214141242.3383831-1-ronan.randles@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20211214141242.3383831-1-ronan.randles@intel.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On Tue, Dec 14, 2021 at 02:12:30PM +0000, Ronan Randles wrote: > This patchset introduces a Gen library for DPDK. This library provides an easy > way to generate traffic in order to test software based network components. > > This library enables the basic functionality required in the traffic generator. > This includes: raw data setting, packet Tx and Rx, creation and destruction of a > Gen instance and various types of data parsing. > This functionality is implemented in "lib/gen/rte_gen.c". IPv4 parsing > functionality is also added in "lib/net/rte_ip.c", this is then used in the gen > library. > > A sample app is included in "examples/generator" which shows the use of the gen > library in making a traffic generator. This can be used to generate traffic by > running the dpdk-generator generator executable. This sample app supports > runtime stats reporting (/gen/stats) and line rate limiting > (/gen/mpps,) through telemetry.py. > > As more features are added to the gen library, the sample application will > become more powerful through the "/gen/packet" string parameter > (currently supports IP and Ether address setting). This will allow every > application to generate more complex traffic types in the future without > changing API. > > Harry van Haaren (6): > gen: add files for initial traffic generation library > gen: add basic Rx and Tx routines and tests > gen: add raw packet data API and tests > gen: add parsing infrastructure and Ether protocol > gen: add gen IP parsing > examples/generator: import code from basicfwd.c > > Ronan Randles (6): > net: add string to IPv4 parse function > net: add function to pretty print IPv4 > examples/generator: enable gen library for traffic gen > examples/generator: telemetry support > examples/generator: link status check added > examples/generator: line rate limiting > > app/test/meson.build | 4 + > app/test/test_gen.c | 184 +++++++++++ > app/test/test_net.c | 87 ++++++ > doc/api/doxy-api-index.md | 3 +- > doc/api/doxy-api.conf.in | 1 + > examples/generator/main.c | 483 ++++++++++++++++++++++++++++ > examples/generator/meson.build | 13 + > examples/meson.build | 1 + > lib/gen/meson.build | 6 + > lib/gen/rte_gen.c | 553 +++++++++++++++++++++++++++++++++ > lib/gen/rte_gen.h | 114 +++++++ > lib/gen/version.map | 10 + > lib/meson.build | 1 + > lib/net/meson.build | 1 + > lib/net/rte_ip.c | 58 ++++ > lib/net/rte_ip.h | 38 +++ > lib/net/version.map | 9 + > 17 files changed, 1565 insertions(+), 1 deletion(-) I think this is great to see, and sounds a good addition to DPDK. One thing to address in any v2 is to add more documentation for both the library and the example app. You need a chapter on the lib added to the programmers guide to help others use the library from their code, and a chapter on the generator example in the example apps guide. More general question - if we do have a traffic generator in DPDK, would it be better in the "app" rather than the examples one? If it's only going to ever stay a simple example of using the lib, examples might be fine, but I suspect that it will get quite complicated if people start using it and adding more features, in which case a move to the "app" folder might be more appropriate. Thoughts? /Bruce