[v5,00/23] net/softnic: refactoring
mbox series

Message ID 20180706172116.50951-1-jasvinder.singh@intel.com
Headers show
Series
  • net/softnic: refactoring
Related show

Message

Singh, Jasvinder July 6, 2018, 5:20 p.m. UTC
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'

v5 changes:
- update meson file

v4 changes:
- fix multiple function definitions errors in ip-pipeline due to
  softnic functions

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/meson.build                    |   15 +-
 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       | 2929 +++++++++++++
 drivers/net/softnic/rte_eth_softnic_tm.c           |  173 +-
 ...nic_version.map => rte_eth_softnic_version.map} |    6 +
 mk/rte.app.mk                                      |    6 +
 31 files changed, 12236 insertions(+), 1032 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%)

Comments

Dumitrescu, Cristian July 6, 2018, 5:33 p.m. UTC | #1
> -----Original Message-----
> From: Singh, Jasvinder
> Sent: Friday, July 6, 2018 6:21 PM
> To: dev@dpdk.org
> Cc: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>
> Subject: [PATCH v5 00/23] net/softnic: refactoring
> 
> 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.
> 

Applied on next-pipeline tree, thanks!