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 823B8A034E; Fri, 21 Jan 2022 11:31:33 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1734942746; Fri, 21 Jan 2022 11:31:33 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id 292C040042 for ; Fri, 21 Jan 2022 11:31:30 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1642761091; x=1674297091; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=nKBHic/caWrYqw48W79vjLC7qwUxmjeIf8G7rlUczEU=; b=JUt9GfzGLCzkVl7Eg0c15PnIUjV8/w2MqzIrEF6O5r8gmrgLi/tkjHro zLvNag2E6wjsyfUBEA+/LpjcfF1M2Nz91Hn0ju7J5UQj8jf1rw0lyMxoI XzGD6rrERF986XKMULHbx6O7r6z1pt5rSJ4H8p2khrrw+Fp7S4gojBvn/ Q3JZdmtX/DHnMHNUITE+WC3LpuQQ2RsMdZBRmB+CFF7jZWq+wqYJPFMkj Bk+TtaEk9vjoZ3K57z5AWCdlmM8cMGerobZFNYIE7CGQr0/p6eVlTQaeg jIOrg0yXay4d+j175t9sY42DRvKBlz44dPc/2KLPoL/1I1oHwkWYr/4+o w==; X-IronPort-AV: E=McAfee;i="6200,9189,10233"; a="270045052" X-IronPort-AV: E=Sophos;i="5.88,304,1635231600"; d="scan'208";a="270045052" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jan 2022 02:31:29 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,304,1635231600"; d="scan'208";a="533222681" Received: from silpixa00401120.ir.intel.com ([10.55.128.255]) by orsmga008.jf.intel.com with ESMTP; 21 Jan 2022 02:31:28 -0800 From: Ronan Randles To: dev@dpdk.org Cc: Ronan Randles Subject: [PATCH v2 00/15] add packet generator library and example app Date: Fri, 21 Jan 2022 10:31:07 +0000 Message-Id: <20220121103122.2926856-1-ronan.randles@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211214141242.3383831-1-ronan.randles@intel.com> References: <20211214141242.3383831-1-ronan.randles@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 V2 - Add UDP protocol support - Add VXLAN protocol support - Removed gen/packet telemetry function as it was unimplemented - Fixed IPv4 endianness issue As I am coming to the end of my internship I will now longer be working on this project. As discussed on the thread [1] this patchset will be marked non-applicable on patchwork. We are posting the V2 here to make the rework publicly available. - Ronan [1] DPDK Mailing list discussion around Gen library upstreaming; http://mails.dpdk.org/archives/dev/2022-January/232845.html 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 (9): 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 gen: add UDP support net/vxlan: instance flag endianness refactored gen: add VXLAN support app/test/meson.build | 4 + app/test/test_gen.c | 186 +++++++++ app/test/test_net.c | 87 +++++ doc/api/doxy-api-index.md | 3 +- doc/api/doxy-api.conf.in | 1 + examples/generator/main.c | 470 ++++++++++++++++++++++ examples/generator/meson.build | 13 + examples/meson.build | 1 + lib/gen/meson.build | 6 + lib/gen/rte_gen.c | 694 +++++++++++++++++++++++++++++++++ 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/rte_vxlan.h | 10 +- lib/net/version.map | 7 + 18 files changed, 1702 insertions(+), 2 deletions(-) create mode 100644 app/test/test_gen.c create mode 100644 app/test/test_net.c create mode 100644 examples/generator/main.c create mode 100644 examples/generator/meson.build create mode 100644 lib/gen/meson.build create mode 100644 lib/gen/rte_gen.c create mode 100644 lib/gen/rte_gen.h create mode 100644 lib/gen/version.map create mode 100644 lib/net/rte_ip.c -- 2.25.1