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 BDDB5A034E; Tue, 14 Dec 2021 17:00:04 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7A5E640041; Tue, 14 Dec 2021 17:00:04 +0100 (CET) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mails.dpdk.org (Postfix) with ESMTP id 92F714003C for ; Tue, 14 Dec 2021 17:00:02 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1639497602; x=1671033602; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=d9vDT8QJJdi8//I+aNuYWm02qNuZQ5xfGaQxxL6/YLU=; b=fBTWrS1lwLUp8UU5PSKmC3wdq2NXOlazP0TfCT92VJcBEoQggZe1jAnr fEfpNqZEcj4KFDJfv20PNm2WOra75nrHtVwn/Hcgtp4Gs40MbwQNed129 k9b2dDnrHeE9Fy3DaaVIt/tCk1UhSJk2LiC4OmkfzhTNo5kmvXXWJ/H76 2OapvKvGR+s9FEXo6WH8mExbAu5w06aY3v2bX3bMPGkY+L0vRYGrJK+5e xS73RTO4MEVuljnAxpCd437Bxc58yxYIhssqMXBIB/SIIR4xcXNdtdUKV A3j+LBXcvjriGzWBg2UaGr6S7B5S/7QLyQngKO+AXDM89cn8JJk/gNmjD g==; X-IronPort-AV: E=McAfee;i="6200,9189,10197"; a="225864338" X-IronPort-AV: E=Sophos;i="5.88,205,1635231600"; d="scan'208";a="225864338" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Dec 2021 08:00:01 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,205,1635231600"; d="scan'208";a="545212172" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga001.jf.intel.com with ESMTP; 14 Dec 2021 08:00:01 -0800 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 14 Dec 2021 08:00:01 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Tue, 14 Dec 2021 08:00:01 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.170) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Tue, 14 Dec 2021 08:00:00 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CRemAVZ2pl+aJ5KYi5oJ9ijYR9Ak83wQo0rnTfdq39ZpVQ6x2QVv9FVlbcATST+RjRYGbwMINShUta1887CTfg2seDK7vIZzMU834pl19JrSPJ1XdRk8Gy+ERNZDajoHkFfSnSSyuenhI0c1Tuk51toFQucKqgVXZ/z4rlPpKUA3IBkFy5EGl+EG/5R3npG38it95Bo3KgiPX7MgsLUlDG+bdsf/WJU/coRw1JqMVh8A1iR24mg11K9sCzvUTG5Xh1VfFA106rlCFk25dSiKM5No6VvjOAFQs3B20jwQl2cu5Gwi2j/wdBkGjgNBt62DJbXULrgKpXPUPluK1scWMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=yfiA7uzViOK8Mkv5ZKyrPFFIiUNQbHuHzWVHbgOPpg8=; b=GTHVHPVckVls0sQMEXrJKtEs326faq/hN1/UO6gFjO7GhR/IV4FJ9q92vbDzN/eub2e/9IpyQXkM/Odult8BRFb3maxfjHlevFYqar6zIV/lbFlB78nsQG3yd/N7kWQ+XGBGC6FpqIe8MoB279vQrdaG1xGNiZtX5xMcp3YpQoxK+WoLqec+D+UOr1WbdcLc7ZbwHQl1MQgoIvVA/x99H79hXhvsL7vKty0TEZnt788i9xEpGF6r4xZ7GHREgxKx51Fi8RGyind8+kjzknAiAZTrojC0fgcDAl0vkoV0PAWDqamyJ/V6gDYRZvYv7dWVf0b6AkAiPzQvTzXQMHGbIQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yfiA7uzViOK8Mkv5ZKyrPFFIiUNQbHuHzWVHbgOPpg8=; b=C10MF71lAAQMNfwIF6GAvIfQo0C2Zto7V0StclmBMl6JHnCBOESG8nx+9jBI0+viXPq3tLKLgT1XdiEXDck37LfSLcxi+ZWL6kmXUZv0Ovg2C+9XD0iyEX/O3raTMBNf/uiekBCtV66QdCmQWWzY6uLgIArdQKxTRZtYZNqDOkQ= Received: from BN0PR11MB5725.namprd11.prod.outlook.com (2603:10b6:408:160::16) by BN7PR11MB2659.namprd11.prod.outlook.com (2603:10b6:406:ab::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.17; Tue, 14 Dec 2021 15:59:57 +0000 Received: from BN0PR11MB5725.namprd11.prod.outlook.com ([fe80::174:dff2:4b0a:3ca]) by BN0PR11MB5725.namprd11.prod.outlook.com ([fe80::174:dff2:4b0a:3ca%4]) with mapi id 15.20.4778.013; Tue, 14 Dec 2021 15:59:57 +0000 From: "Randles, Ronan" To: "Richardson, Bruce" , "Van Haaren, Harry" CC: "dev@dpdk.org" Subject: RE: [PATCH 00/12] add packet generator library and example app Thread-Topic: [PATCH 00/12] add packet generator library and example app Thread-Index: AQHX8PSyvJLZqeRtjk6bn2Tsb3zxaKwyE/4AgAAPrXA= Date: Tue, 14 Dec 2021 15:59:56 +0000 Message-ID: References: <20211214141242.3383831-1-ronan.randles@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-Mentions: harry.van.haaren@intel.com X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.200.16 dlp-reaction: no-action authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ee97cc60-4a43-4916-854e-08d9bf1ac6a3 x-ms-traffictypediagnostic: BN7PR11MB2659:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cw2YFO79WEaUeSHE9vaVGq/esogMAP0a3Y2m4pA2U2wyvFUt6KUU+U8Re+MC9Oo3wKFD7IAKJvybHitERQkOOgTRKON/fvvcq4PRRkdgKALZpHQ6tZzIc72xR2XNhcDDHmdSTC5Db5x03jwVkogi86SVa6rnBRK6a92QKxkrP6v95FukNGi8Kt0lE9Z9WElOYQTM1laSxeE8fd/ySK2sRKvL5Svv7LdFXvycH1IVkCsL/KTlrDx2M6F995ej6rn7DkiMk7wj4SFYr//eR8Ek19MguoGSZBInLkNESkkWYhsqXfRf5TAEV4hsZK+gZ24BWpz5fVrVx2/R+j+zSVjQCg0AQwO2Sehul3wLL82HrlaVt1uzrGhaa9HZ/dxFLDgdj7nTm9b3zs85cKY+jHdbaVlB9wz8nuqftvTLYcilcqegncWhj9ME7FARyBfdpq2q2BEwWCcHIAjGjb2sgBOpAfuntIHM/nxth4Nm2gY0SASagOIkLum0vB9eq36sjrgtl5hFR1b55jG1GeEW/mevqy2X0AYAx6ysfsFE8u6flzz3kdNJ0dunQFkqEAFSeif8cliberpMKzi1GBxRnQKZtQkVtxIgZ52Ih/bZkQvG04vrxe/bTN7g0jyjro70xrv5FXtUQ+E+3yJuYBzYynNH3RIm55/W073/BR1BZLgObTANqqhJuo/47i2NTSOqtTvCmdYbqX677+Fgunbd3WQyfg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN0PR11MB5725.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(83380400001)(82960400001)(186003)(55016003)(4326008)(508600001)(33656002)(52536014)(26005)(2906002)(86362001)(5660300002)(66476007)(66946007)(8936002)(53546011)(38100700002)(66446008)(8676002)(7696005)(110136005)(64756008)(122000001)(9686003)(66556008)(316002)(6636002)(76116006)(6506007)(38070700005)(71200400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?E2dAjvQf4YbSJIghaViuTvTheKro+4u7FLAYA7AZ2m8ep12RZ26h11JA5TXu?= =?us-ascii?Q?2CjARPOPkAZSnCJ0c4NM34Ba6/vvD2BRhF7Bl+4SxoJ+cQXiJ46AVHp4V10v?= =?us-ascii?Q?uk0fidw/80hVnCtaccr23uOgYcO2LaNIkQo7BJQKYfNmHuJZracvIVfZOmBP?= =?us-ascii?Q?xco4F73ZJ0tX6SagydLxDcwzBm6jud+e41n2KgMYZ72uuJjin+pp4GZoc7AP?= =?us-ascii?Q?0OcDX3+0M1pIon9GHruWy1EYiP/0td/TV3ygQuZ1Sp2FgdE5tXTFnqN3fV/X?= =?us-ascii?Q?iYYQ2P0MMEHgbP+jxEy7jKANXbxlEt7vngbApkztak7aej8qQuTL3Ks5YW2g?= =?us-ascii?Q?XHzvwYlhxBzeQ2s9LE4LH9JbrdDVYtnhMtgXZI0YqC0qDHFdVIJcklbbwlkT?= =?us-ascii?Q?DOMP7k8PGkt5Be/PiWfVas6SYYd0R831RLnDJrJlocpE6PEfEM51Pw04V3gO?= =?us-ascii?Q?8R3/FlTMAiamBha0Do6oWxyVIOM2TuhYIMSrJF9twbXMXy008rZsmy5XPSie?= =?us-ascii?Q?2XrLLUlAn206CRrVqmwXU45D5WcZP99E9biM8BoSUwYo7VfqHKt7L116RrVE?= =?us-ascii?Q?F5z4tFW9BLxW0CQ0VNh6rJS1jIEKoZsTWwAFL12zU2WpJKDrS1X8K308wsRy?= =?us-ascii?Q?LWH9i7ItBWN0JDnQocZMxvVgVYdjw3DaZg5fGFpmajlZrWOA2vQ0a5RSho+s?= =?us-ascii?Q?K9KdtSdDVWNM1NVEDvesZUolnxB6aCGWzaR0QpCabc8cy/UiGcLa7Efpnh2p?= =?us-ascii?Q?t0HviwmkkIkgXsUtuN3Uu7GTcqVk5hATchh2iR96hCCAWOS2Qc2XHPJ053BA?= =?us-ascii?Q?0JgChvrerIj7GxL7BVfuUxwRT/nDBK4lUfT198qTYwM6ggEKMDY0apW4XKLD?= =?us-ascii?Q?nkXGSsu47dgut8i9o3NYFpKDzEz5qwaDutF0LW67AdHFoBpEvkgAdE3ThJm5?= =?us-ascii?Q?1BCyNNKcP0EO0wBaFPJCmQxfj7fxTc3QANtFvf/2LX4kZZZgf7lmgvLUhSzR?= =?us-ascii?Q?0wFTWjfjQ7B6Ay9EyZgvZOYiGOhc8DTyBu2P49F+MXmMWgPp3eJGAJxI2w3U?= =?us-ascii?Q?OmQNTTdX24GLfzAAFnCdroTfX8Lj9XyW74Nfbb+EVJfG+fJJ6ex6x8cqWQaF?= =?us-ascii?Q?gIy3A+8Fc2KMklaXJshkrHZHT+/zjMih8PIGwIZg9zr5JfVB39odpQNn/q96?= =?us-ascii?Q?UQF+Njw5I5NJ9SkKljVdob6nrJIwsXg/bY8cDJ79rX81Zfr+huC4HvzxMGch?= =?us-ascii?Q?Lr0bCzwzYUhFUEzvU2fv7Mu8/MzQV8YyNIvAMW81XI+9pFkwy0qT6mSthKR1?= =?us-ascii?Q?LhjWTCfxsG/KrJ30vFKOocL+tcDdpps7wok0w7LisM61mzSH5A8E9IWPDDZ8?= =?us-ascii?Q?uETDr030hDtP4PJ/A8oAy90uVQFEAkSOxUfuBHlECdWVnML5y7Sod51J1vYs?= =?us-ascii?Q?gL+TMw6LncW56GB7sl+chgpM+a8c/9jpdhu00VxntQXCAsR7kQJ6V0T5PwF7?= =?us-ascii?Q?EIsZPmEPrTUHzR+bWqsk9s5ZofbJZrRHLo/gD0xTuIdXv53STwct/EsGsWvt?= =?us-ascii?Q?ZNlfQXa5fZQKhFRoRs098K3Yy1DGcSaNBhNfElZ5nr4jEMxYR0pOZM/yxgN2?= =?us-ascii?Q?bw=3D=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN0PR11MB5725.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ee97cc60-4a43-4916-854e-08d9bf1ac6a3 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Dec 2021 15:59:57.0890 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: EgjVoV4a/imE+tI4BcB3+/UqQ4b5dn4v93SoKotC0egddZ49jd4b3iJWQPUXCcFLiqqbp/PfnIgIk27WR3gyuA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR11MB2659 X-OriginatorOrg: 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 I'd be inclined to agree with you on the move to the app dir. The example a= pp could be turned into more of a fully-fledged app than just an example ap= p. I think the final decision on that would fall to @Van Haaren, Harry on t= hat -----Original Message----- From: Richardson, Bruce =20 Sent: Tuesday, December 14, 2021 2:58 PM To: Randles, Ronan Cc: dev@dpdk.org; Van Haaren, Harry Subject: Re: [PATCH 00/12] add packet generator library and example app On Tue, Dec 14, 2021 at 02:12:30PM +0000, Ronan Randles wrote: > This patchset introduces a Gen library for DPDK. This library provides=20 > an easy way to generate traffic in order to test software based network c= omponents. >=20 > This library enables the basic functionality required in the traffic gene= rator. > This includes: raw data setting, packet Tx and Rx, creation and=20 > destruction of a Gen instance and various types of data parsing. > This functionality is implemented in "lib/gen/rte_gen.c". IPv4 parsing=20 > functionality is also added in "lib/net/rte_ip.c", this is then used=20 > in the gen library. >=20 > A sample app is included in "examples/generator" which shows the use=20 > of the gen library in making a traffic generator. This can be used to=20 > generate traffic by running the dpdk-generator generator executable.=20 > This sample app supports runtime stats reporting (/gen/stats) and line=20 > rate limiting (/gen/mpps,) through telemetry= .py. >=20 > As more features are added to the gen library, the sample application=20 > will become more powerful through the "/gen/packet" string parameter=20 > (currently supports IP and Ether address setting). This will allow=20 > every application to generate more complex traffic types in the future=20 > without changing API. >=20 > 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 >=20 > 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 >=20 > 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 gu= ide to help others use the library from their code, and a chapter on the ge= nerator 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 ad= ding more features, in which case a move to the "app" folder might be more = appropriate. Thoughts? /Bruce