From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 28CB7A00C3;
	Tue, 14 Dec 2021 15:12:50 +0100 (CET)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id DF9B840041;
	Tue, 14 Dec 2021 15:12:49 +0100 (CET)
Received: from mga07.intel.com (mga07.intel.com [134.134.136.100])
 by mails.dpdk.org (Postfix) with ESMTP id D41324003C
 for <dev@dpdk.org>; Tue, 14 Dec 2021 15:12:47 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;
 d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
 t=1639491168; x=1671027168;
 h=from:to:cc:subject:date:message-id:mime-version:
 content-transfer-encoding;
 bh=JatECgEjssOE8jUmIxGetyW6QG+zgvibJTirRZvEoSE=;
 b=icVhzxX9hTS/UgE+AT1iAqlkb10gqH2157+QgDQ5maBU/RE6NgxZ0Hai
 Yu9yJsiAmBzWYT8Z7Fo9TVVcptgVEKqhk07F9YnOzIL2puFpVRlr/aMRz
 2IJbGSY88LQSjrpkVc8GhrwbU+O1yFl5aYxHXZOiX3EUfuZ3VBURBitsO
 23TURTiQmS/opD0aCigLXEsgwVDQ6HN5fmO0n8Zh3ZMyTqv005i2tUXzN
 Yp0dqDRczNqx30nVlEUtXQiJEuYgcLs8dzfFgvq2RFC6Cr2JdZh+IvGfP
 o4dX6wXDkXi6pxnzVqTOdt6j+beU+eEiwHR3PxqD2IsMnzHRVGN0pjEfj w==;
X-IronPort-AV: E=McAfee;i="6200,9189,10197"; a="302362295"
X-IronPort-AV: E=Sophos;i="5.88,205,1635231600"; d="scan'208";a="302362295"
Received: from orsmga006.jf.intel.com ([10.7.209.51])
 by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 14 Dec 2021 06:12:46 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.88,205,1635231600"; d="scan'208";a="465104070"
Received: from silpixa00401120.ir.intel.com ([10.55.129.95])
 by orsmga006.jf.intel.com with ESMTP; 14 Dec 2021 06:12:45 -0800
From: Ronan Randles <ronan.randles@intel.com>
To: dev@dpdk.org
Cc: harry.van.haaren@intel.com,
	Ronan Randles <ronan.randles@intel.com>
Subject: [PATCH 00/12] add packet generator library and example app
Date: Tue, 14 Dec 2021 14:12:30 +0000
Message-Id: <20211214141242.3383831-1-ronan.randles@intel.com>
X-Mailer: git-send-email 2.25.1
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 <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

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,<target traffic rate in 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(-)
 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