[dpdk-dev] [PATCH v3 00/23] net/softnic: refactoring

Jasvinder Singh jasvinder.singh at intel.com
Wed Jun 27 18:31:00 CEST 2018


This patch set modifies the Soft NIC device driver to use the Packet
Framework, which makes it much more modular, flexible and extensible
with new functionality.

• The Soft NIC allows building custom NIC pipelines in SW. The Soft NIC
  pipeline is DIY and reconfigurable through “firmware” (DPDK Packet
  Framework script).
• Configured through the standard DPDK ethdev API (including flow,
  QoS, security). The internal framework is not externally visible.
• Key benefits:
  - Can be used to augment missing features to HW NICs.
  - Allows consumption of advanced DPDK features without
    redesigning the target application.
  - Allows out-of-the-box performance boost of DPDK.
    consumers apps simply by instantiating this Ethernet device.

Example: Create "Soft NIC" port with configuration defined
in “firmware” script file
   --vdev 'net_softnic0,firmware=script.cli'

v3 changes:
- fix freebsd build errors
- add firmware script for softnic

v2 changes:
- fix build warnings
- fix checkpatch warnings

Cristian Dumitrescu (22):
Jasvinder Singh (23):
Reshma Pattan (1):
  net/softnic: restructuring
  net/softnic: add software queue object
  net/softnic: add link object
  net/softnic: add mempool object
  net/softnic: add tap object
  net/softnic: add traffic manager object
  net/softnic: add port action profile
  net/softnic: add table action profile
  net/softnic: add pipeline object
  net/softnic: add thread
  net/softnic: add softnic run API
  net/softnic: add cli interface
  net/softnic: add connection agent
  net/softnic: add cli to create softnic objects
  net/softnic: add cli to enable and disable pipeline
  net/softnic: add cli for pipeline table entries
  net/softnic: add cli to read stats
  net/softnic: add cli for meter action
  net/softnic: add cli for ttl action
  net/softnic: receive and transmit queue setup
  net/softnic: start and stop function
  net/softnic: add firmware script
  app/testpmd: rework softnic forward mode

 app/test-pmd/Makefile                              |    4 +-
 app/test-pmd/cmdline.c                             |   54 +-
 app/test-pmd/config.c                              |   57 +
 app/test-pmd/{tm.c => softnicfwd.c}                |  405 +-
 app/test-pmd/testpmd.c                             |   29 +-
 app/test-pmd/testpmd.h                             |   44 +-
 config/common_base                                 |    2 +-
 config/common_linuxapp                             |    1 +
 drivers/net/softnic/Makefile                       |   23 +-
 drivers/net/softnic/conn.c                         |  332 ++
 drivers/net/softnic/conn.h                         |   49 +
 drivers/net/softnic/firmware.cli                   |   21 +
 drivers/net/softnic/hash_func.h                    |  359 ++
 drivers/net/softnic/hash_func_arm64.h              |  261 ++
 drivers/net/softnic/parser.c                       |  685 +++
 drivers/net/softnic/parser.h                       |   66 +
 drivers/net/softnic/rte_eth_softnic.c              |  755 ++--
 drivers/net/softnic/rte_eth_softnic.h              |   49 +-
 drivers/net/softnic/rte_eth_softnic_action.c       |  389 ++
 drivers/net/softnic/rte_eth_softnic_cli.c          | 4342 ++++++++++++++++++++
 drivers/net/softnic/rte_eth_softnic_internals.h    |  814 +++-
 drivers/net/softnic/rte_eth_softnic_link.c         |   98 +
 drivers/net/softnic/rte_eth_softnic_mempool.c      |  103 +
 drivers/net/softnic/rte_eth_softnic_pipeline.c     |  966 +++++
 drivers/net/softnic/rte_eth_softnic_swq.c          |  113 +
 drivers/net/softnic/rte_eth_softnic_tap.c          |  118 +
 drivers/net/softnic/rte_eth_softnic_thread.c       | 2710 ++++++++++++
 drivers/net/softnic/rte_eth_softnic_tm.c           |  173 +-
 ...nic_version.map => rte_eth_softnic_version.map} |    6 +
 mk/rte.app.mk                                      |    6 +
 30 files changed, 12004 insertions(+), 1030 deletions(-)
 rename app/test-pmd/{tm.c => softnicfwd.c} (61%)
 create mode 100644 drivers/net/softnic/conn.c
 create mode 100644 drivers/net/softnic/conn.h
 create mode 100644 drivers/net/softnic/firmware.cli
 create mode 100644 drivers/net/softnic/hash_func.h
 create mode 100644 drivers/net/softnic/hash_func_arm64.h
 create mode 100644 drivers/net/softnic/parser.c
 create mode 100644 drivers/net/softnic/parser.h
 create mode 100644 drivers/net/softnic/rte_eth_softnic_action.c
 create mode 100644 drivers/net/softnic/rte_eth_softnic_cli.c
 create mode 100644 drivers/net/softnic/rte_eth_softnic_link.c
 create mode 100644 drivers/net/softnic/rte_eth_softnic_mempool.c
 create mode 100644 drivers/net/softnic/rte_eth_softnic_pipeline.c
 create mode 100644 drivers/net/softnic/rte_eth_softnic_swq.c
 create mode 100644 drivers/net/softnic/rte_eth_softnic_tap.c
 create mode 100644 drivers/net/softnic/rte_eth_softnic_thread.c
 rename drivers/net/softnic/{rte_pmd_softnic_version.map => rte_eth_softnic_version.map} (52%)

-- 
2.9.3



More information about the dev mailing list