mbox series

[v5,00/80] Provide flow filter and statistics support

Message ID 20241030213940.3470062-1-sil-plv@napatech.com (mailing list archive)
Headers
Series Provide flow filter and statistics support |

Message

Serhii Iliushyk Oct. 30, 2024, 9:38 p.m. UTC
The list of updates provided by the patchset:
  - FW version
  - Speed capabilities
  - Link status (Link update only)
  - Unicast MAC filter
  - Multicast MAC filter
  - Promiscuous mode (Enable only. The device always run promiscuous mode)
  - Flow API support.
  - Support for multiple rte_flow groups.
  - Multiple TX and RX queues.
  - Scattered and gather for TX and RX.
  - Jumbo frame support.
  - Traffic mirroring.
  - VLAN filtering.
  - Packet modification: NAT, TTL decrement, DSCP tagging
  - Tunnel types: GTP.
  - Encapsulation and decapsulation of GTP data.
  - RX VLAN stripping via raw decap.
  - TX VLAN insertion via raw encap.
  - CAM and TCAM based matching.
  - Exact match of 140 million flows and policies.
  - Tunnel HW offload: Packet type, inner/outer RSS, IP and UDP checksum
    verification.
  - RSS hash
  - RSS key update
  - RSS based on VLAN or 5-tuple.
  - RSS using different combinations of fields: L3 only, L4 only or both, and
    source only, destination only or both.
  - Several RSS hash keys, one for each flow type.
  - Default RSS operation with no hash key specification.
  - Port and queue statistics.
  - RMON statistics in extended stats.
  - Link state information.
  - Flow statistics
  - Flow aging support
  - Flow metering, including meter policy API.
  - Flow update. Update of the action list for specific flow
  - Asynchronous flow support
  - MTU update

Update: the pthread API was replaced with RTE spinlock in the separate patch.

Danylo Vodopianov (41):
  net/ntnic: add NT flow dev configuration
  net/ntnic: add item UDP
  net/ntnic: add action TCP
  net/ntnic: add action VLAN
  net/ntnic: add item SCTP
  net/ntnic: add items IPv6 and ICMPv6
  net/ntnic: add action modify filed
  net/ntnic: add items gtp and actions raw encap/decap
  net/ntnic: add cat module
  net/ntnic: add SLC LR module
  net/ntnic: add PDB module
  net/ntnic: add QSL module
  net/ntnic: add KM module
  net/ntnic: add hash API
  net/ntnic: add TPE module
  net/ntnic: add FLM module
  net/ntnic: add FLM RCP module
  net/ntnic: add learn flow queue handling
  net/ntnic: match and action db attributes were added
  net/ntnic: add statistics support
  net/ntnic: add rpf module
  net/ntnic: add statistics poll
  net/ntnic: added flm stat interface
  net/ntnic: add TSM module
  net/ntnic: add xStats
  net/ntnic: added flow statistics
  net/ntnic: add scrub registers
  net/ntnic: add high-level flow aging support
  net/ntnic: add aging to the inline profile
  net/ntnic: add flow info and flow configure support
  net/ntnic: add flow aging event
  net/ntnic: add termination thread
  net/ntnic: add meter support
  net/ntnic: add meter module
  net/ntnic: add action update support
  net/ntnic: add flow action update
  net/ntnic: add flow actions update
  net/ntnic: add async create/destroy declaration
  net/ntnic: add async template declaration
  net/ntnic: add async flow create/delete implementation
  net/ntnic: add async template implementation

Oleksandr Kolomeiets (17):
  net/ntnic: add flow dump feature
  net/ntnic: add flow flush
  net/ntnic: sort FPGA registers alphanumerically
  net/ntnic: add CSU module registers
  net/ntnic: add FLM module registers
  net/ntnic: add HFU module registers
  net/ntnic: add IFR module registers
  net/ntnic: add MAC Rx module registers
  net/ntnic: add MAC Tx module registers
  net/ntnic: add RPP LR module registers
  net/ntnic: add SLC LR module registers
  net/ntnic: add Tx CPY module registers
  net/ntnic: add Tx INS module registers
  net/ntnic: add Tx RPL module registers
  net/ntnic: add STA module
  net/ntnic: add TSM module
  net/ntnic: add MTU configuration

Serhii Iliushyk (22):
  net/ntnic: add flow filter support
  net/ntnic: add minimal create/destroy flow operations
  net/ntnic: add internal functions for create/destroy
  net/ntnic: add minimal NT flow inline profile
  net/ntnic: add management functions for NT flow profile
  net/ntnic: add NT flow profile management implementation
  net/ntnic: add create/destroy implementation for NT flows
  net/ntnic: add infrastructure for for flow actions and items
  net/ntnic: add action queue
  net/ntnic: add action mark
  net/ntnic: add ation jump
  net/ntnic: add action drop
  net/ntnic: add item eth
  net/ntnic: add item IPv4
  net/ntnic: add item ICMP
  net/ntnic: add item port ID
  net/ntnic: add item void
  net/ntnic: add GMF (Generic MAC Feeder) module
  net/ntnic: update alignment for virt queue structs
  net/ntnic: enable RSS feature
  net/ntnic: migrate to the RTE spinlock
  net/ntnic: remove unnecessary

 doc/guides/nics/features/default.ini          |    2 +-
 doc/guides/nics/features/ntnic.ini            |   34 +
 doc/guides/nics/ntnic.rst                     |   50 +
 doc/guides/rel_notes/release_24_11.rst        |    8 +
 drivers/net/ntnic/adapter/nt4ga_adapter.c     |   29 +-
 .../net/ntnic/adapter/nt4ga_stat/nt4ga_stat.c |  598 ++
 drivers/net/ntnic/dbsconfig/ntnic_dbsconfig.c |    7 +-
 .../net/ntnic/include/common_adapter_defs.h   |   15 +
 drivers/net/ntnic/include/create_elements.h   |   73 +
 drivers/net/ntnic/include/flow_api.h          |  142 +-
 drivers/net/ntnic/include/flow_api_engine.h   |  380 +
 drivers/net/ntnic/include/flow_filter.h       |    1 +
 drivers/net/ntnic/include/hw_mod_backend.h    |  256 +
 drivers/net/ntnic/include/nt4ga_adapter.h     |    2 +
 drivers/net/ntnic/include/ntdrv_4ga.h         |    5 +
 drivers/net/ntnic/include/ntnic_stat.h        |  265 +
 drivers/net/ntnic/include/ntos_drv.h          |   24 +
 .../ntnic/include/stream_binary_flow_api.h    |   67 +
 .../link_mgmt/link_100g/nt4ga_link_100g.c     |    8 +
 drivers/net/ntnic/meson.build                 |   20 +
 .../net/ntnic/nthw/core/include/nthw_core.h   |    1 +
 .../net/ntnic/nthw/core/include/nthw_gmf.h    |   64 +
 .../net/ntnic/nthw/core/include/nthw_i2cm.h   |    4 +-
 .../net/ntnic/nthw/core/include/nthw_rmc.h    |    6 +
 .../net/ntnic/nthw/core/include/nthw_rpf.h    |   49 +
 .../net/ntnic/nthw/core/include/nthw_tsm.h    |   56 +
 drivers/net/ntnic/nthw/core/nthw_fpga.c       |   47 +
 drivers/net/ntnic/nthw/core/nthw_gmf.c        |  133 +
 drivers/net/ntnic/nthw/core/nthw_rmc.c        |   30 +
 drivers/net/ntnic/nthw/core/nthw_rpf.c        |  120 +
 drivers/net/ntnic/nthw/core/nthw_tsm.c        |  167 +
 drivers/net/ntnic/nthw/flow_api/flow_api.c    |  923 ++-
 drivers/net/ntnic/nthw/flow_api/flow_group.c  |   99 +
 drivers/net/ntnic/nthw/flow_api/flow_hasher.c |  156 +
 drivers/net/ntnic/nthw/flow_api/flow_hasher.h |   21 +
 .../net/ntnic/nthw/flow_api/flow_id_table.c   |  145 +
 .../net/ntnic/nthw/flow_api/flow_id_table.h   |   26 +
 drivers/net/ntnic/nthw/flow_api/flow_km.c     | 1171 ++++
 .../ntnic/nthw/flow_api/hw_mod/hw_mod_cat.c   |  457 ++
 .../ntnic/nthw/flow_api/hw_mod/hw_mod_flm.c   |  723 ++
 .../ntnic/nthw/flow_api/hw_mod/hw_mod_hsh.c   |  179 +
 .../ntnic/nthw/flow_api/hw_mod/hw_mod_km.c    |  380 +
 .../ntnic/nthw/flow_api/hw_mod/hw_mod_pdb.c   |  144 +
 .../ntnic/nthw/flow_api/hw_mod/hw_mod_qsl.c   |  218 +
 .../nthw/flow_api/hw_mod/hw_mod_slc_lr.c      |  100 +
 .../ntnic/nthw/flow_api/hw_mod/hw_mod_tpe.c   |  853 +++
 .../flow_api/profile_inline/flm_age_queue.c   |  164 +
 .../flow_api/profile_inline/flm_age_queue.h   |   42 +
 .../flow_api/profile_inline/flm_evt_queue.c   |  293 +
 .../flow_api/profile_inline/flm_evt_queue.h   |   55 +
 .../flow_api/profile_inline/flm_lrn_queue.c   |   70 +
 .../flow_api/profile_inline/flm_lrn_queue.h   |   25 +
 .../profile_inline/flow_api_hw_db_inline.c    | 3000 ++++++++
 .../profile_inline/flow_api_hw_db_inline.h    |  394 ++
 .../profile_inline/flow_api_profile_inline.c  | 6082 +++++++++++++++++
 .../profile_inline/flow_api_profile_inline.h  |  132 +
 .../flow_api_profile_inline_config.h          |  127 +
 .../ntnic/nthw/flow_filter/flow_nthw_flm.c    |   47 +-
 .../net/ntnic/nthw/model/nthw_fpga_model.c    |   12 +
 .../net/ntnic/nthw/model/nthw_fpga_model.h    |    1 +
 drivers/net/ntnic/nthw/nthw_rac.c             |   38 +-
 drivers/net/ntnic/nthw/nthw_rac.h             |    2 +-
 .../net/ntnic/nthw/ntnic_meter/ntnic_meter.c  |  483 ++
 drivers/net/ntnic/nthw/rte_pmd_ntnic.h        |   43 +
 drivers/net/ntnic/nthw/stat/nthw_stat.c       |  498 ++
 .../supported/nthw_fpga_9563_055_049_0000.c   | 3317 ++++++---
 .../ntnic/nthw/supported/nthw_fpga_mod_defs.h |   11 +-
 .../nthw/supported/nthw_fpga_mod_str_map.c    |    2 +
 .../ntnic/nthw/supported/nthw_fpga_reg_defs.h |    5 +
 .../supported/nthw_fpga_reg_defs_mac_rx.h     |   29 +
 .../supported/nthw_fpga_reg_defs_mac_tx.h     |   21 +
 .../nthw/supported/nthw_fpga_reg_defs_rpf.h   |   19 +
 .../nthw/supported/nthw_fpga_reg_defs_sta.h   |   48 +
 .../nthw/supported/nthw_fpga_reg_defs_tsm.h   |  205 +
 drivers/net/ntnic/ntnic_ethdev.c              |  813 ++-
 drivers/net/ntnic/ntnic_filter/ntnic_filter.c | 1348 ++++
 drivers/net/ntnic/ntnic_mod_reg.c             |  111 +
 drivers/net/ntnic/ntnic_mod_reg.h             |  331 +
 drivers/net/ntnic/ntnic_xstats/ntnic_xstats.c |  829 +++
 drivers/net/ntnic/ntutil/nt_util.h            |   12 +
 80 files changed, 25744 insertions(+), 1123 deletions(-)
 create mode 100644 drivers/net/ntnic/adapter/nt4ga_stat/nt4ga_stat.c
 create mode 100644 drivers/net/ntnic/include/common_adapter_defs.h
 create mode 100644 drivers/net/ntnic/include/create_elements.h
 create mode 100644 drivers/net/ntnic/nthw/core/include/nthw_gmf.h
 create mode 100644 drivers/net/ntnic/nthw/core/include/nthw_rpf.h
 create mode 100644 drivers/net/ntnic/nthw/core/include/nthw_tsm.h
 create mode 100644 drivers/net/ntnic/nthw/core/nthw_gmf.c
 create mode 100644 drivers/net/ntnic/nthw/core/nthw_rpf.c
 create mode 100644 drivers/net/ntnic/nthw/core/nthw_tsm.c
 create mode 100644 drivers/net/ntnic/nthw/flow_api/flow_group.c
 create mode 100644 drivers/net/ntnic/nthw/flow_api/flow_hasher.c
 create mode 100644 drivers/net/ntnic/nthw/flow_api/flow_hasher.h
 create mode 100644 drivers/net/ntnic/nthw/flow_api/flow_id_table.c
 create mode 100644 drivers/net/ntnic/nthw/flow_api/flow_id_table.h
 create mode 100644 drivers/net/ntnic/nthw/flow_api/profile_inline/flm_age_queue.c
 create mode 100644 drivers/net/ntnic/nthw/flow_api/profile_inline/flm_age_queue.h
 create mode 100644 drivers/net/ntnic/nthw/flow_api/profile_inline/flm_evt_queue.c
 create mode 100644 drivers/net/ntnic/nthw/flow_api/profile_inline/flm_evt_queue.h
 create mode 100644 drivers/net/ntnic/nthw/flow_api/profile_inline/flm_lrn_queue.c
 create mode 100644 drivers/net/ntnic/nthw/flow_api/profile_inline/flm_lrn_queue.h
 create mode 100644 drivers/net/ntnic/nthw/flow_api/profile_inline/flow_api_hw_db_inline.c
 create mode 100644 drivers/net/ntnic/nthw/flow_api/profile_inline/flow_api_hw_db_inline.h
 create mode 100644 drivers/net/ntnic/nthw/flow_api/profile_inline/flow_api_profile_inline.c
 create mode 100644 drivers/net/ntnic/nthw/flow_api/profile_inline/flow_api_profile_inline.h
 create mode 100644 drivers/net/ntnic/nthw/flow_api/profile_inline/flow_api_profile_inline_config.h
 create mode 100644 drivers/net/ntnic/nthw/ntnic_meter/ntnic_meter.c
 create mode 100644 drivers/net/ntnic/nthw/rte_pmd_ntnic.h
 create mode 100644 drivers/net/ntnic/nthw/stat/nthw_stat.c
 create mode 100644 drivers/net/ntnic/nthw/supported/nthw_fpga_reg_defs_mac_rx.h
 create mode 100644 drivers/net/ntnic/nthw/supported/nthw_fpga_reg_defs_mac_tx.h
 create mode 100644 drivers/net/ntnic/nthw/supported/nthw_fpga_reg_defs_rpf.h
 create mode 100644 drivers/net/ntnic/nthw/supported/nthw_fpga_reg_defs_sta.h
 create mode 100644 drivers/net/ntnic/nthw/supported/nthw_fpga_reg_defs_tsm.h
 create mode 100644 drivers/net/ntnic/ntnic_filter/ntnic_filter.c
 create mode 100644 drivers/net/ntnic/ntnic_xstats/ntnic_xstats.c
  

Comments

Ferruh Yigit Oct. 31, 2024, 5:15 a.m. UTC | #1
On 10/30/2024 9:38 PM, Serhii Iliushyk wrote:
> The list of updates provided by the patchset:
>   - FW version
>   - Speed capabilities
>   - Link status (Link update only)
>   - Unicast MAC filter
>   - Multicast MAC filter
>   - Promiscuous mode (Enable only. The device always run promiscuous mode)
>   - Flow API support.
>   - Support for multiple rte_flow groups.
>   - Multiple TX and RX queues.
>   - Scattered and gather for TX and RX.
>   - Jumbo frame support.
>   - Traffic mirroring.
>   - VLAN filtering.
>   - Packet modification: NAT, TTL decrement, DSCP tagging
>   - Tunnel types: GTP.
>   - Encapsulation and decapsulation of GTP data.
>   - RX VLAN stripping via raw decap.
>   - TX VLAN insertion via raw encap.
>   - CAM and TCAM based matching.
>   - Exact match of 140 million flows and policies.
>   - Tunnel HW offload: Packet type, inner/outer RSS, IP and UDP checksum
>     verification.
>   - RSS hash
>   - RSS key update
>   - RSS based on VLAN or 5-tuple.
>   - RSS using different combinations of fields: L3 only, L4 only or both, and
>     source only, destination only or both.
>   - Several RSS hash keys, one for each flow type.
>   - Default RSS operation with no hash key specification.
>   - Port and queue statistics.
>   - RMON statistics in extended stats.
>   - Link state information.
>   - Flow statistics
>   - Flow aging support
>   - Flow metering, including meter policy API.
>   - Flow update. Update of the action list for specific flow
>   - Asynchronous flow support
>   - MTU update
> 
> Update: the pthread API was replaced with RTE spinlock in the separate patch.
> 
> Danylo Vodopianov (41):
>   net/ntnic: add NT flow dev configuration
>   net/ntnic: add item UDP
>   net/ntnic: add action TCP
>   net/ntnic: add action VLAN
>   net/ntnic: add item SCTP
>   net/ntnic: add items IPv6 and ICMPv6
>   net/ntnic: add action modify filed
>   net/ntnic: add items gtp and actions raw encap/decap
>   net/ntnic: add cat module
>   net/ntnic: add SLC LR module
>   net/ntnic: add PDB module
>   net/ntnic: add QSL module
>   net/ntnic: add KM module
>   net/ntnic: add hash API
>   net/ntnic: add TPE module
>   net/ntnic: add FLM module
>   net/ntnic: add FLM RCP module
>   net/ntnic: add learn flow queue handling
>   net/ntnic: match and action db attributes were added
>   net/ntnic: add statistics support
>   net/ntnic: add rpf module
>   net/ntnic: add statistics poll
>   net/ntnic: added flm stat interface
>   net/ntnic: add TSM module
>   net/ntnic: add xStats
>   net/ntnic: added flow statistics
>   net/ntnic: add scrub registers
>   net/ntnic: add high-level flow aging support
>   net/ntnic: add aging to the inline profile
>   net/ntnic: add flow info and flow configure support
>   net/ntnic: add flow aging event
>   net/ntnic: add termination thread
>   net/ntnic: add meter support
>   net/ntnic: add meter module
>   net/ntnic: add action update support
>   net/ntnic: add flow action update
>   net/ntnic: add flow actions update
>   net/ntnic: add async create/destroy declaration
>   net/ntnic: add async template declaration
>   net/ntnic: add async flow create/delete implementation
>   net/ntnic: add async template implementation
> 
> Oleksandr Kolomeiets (17):
>   net/ntnic: add flow dump feature
>   net/ntnic: add flow flush
>   net/ntnic: sort FPGA registers alphanumerically
>   net/ntnic: add CSU module registers
>   net/ntnic: add FLM module registers
>   net/ntnic: add HFU module registers
>   net/ntnic: add IFR module registers
>   net/ntnic: add MAC Rx module registers
>   net/ntnic: add MAC Tx module registers
>   net/ntnic: add RPP LR module registers
>   net/ntnic: add SLC LR module registers
>   net/ntnic: add Tx CPY module registers
>   net/ntnic: add Tx INS module registers
>   net/ntnic: add Tx RPL module registers
>   net/ntnic: add STA module
>   net/ntnic: add TSM module
>   net/ntnic: add MTU configuration
> 
> Serhii Iliushyk (22):
>   net/ntnic: add flow filter support
>   net/ntnic: add minimal create/destroy flow operations
>   net/ntnic: add internal functions for create/destroy
>   net/ntnic: add minimal NT flow inline profile
>   net/ntnic: add management functions for NT flow profile
>   net/ntnic: add NT flow profile management implementation
>   net/ntnic: add create/destroy implementation for NT flows
>   net/ntnic: add infrastructure for for flow actions and items
>   net/ntnic: add action queue
>   net/ntnic: add action mark
>   net/ntnic: add ation jump
>   net/ntnic: add action drop
>   net/ntnic: add item eth
>   net/ntnic: add item IPv4
>   net/ntnic: add item ICMP
>   net/ntnic: add item port ID
>   net/ntnic: add item void
>   net/ntnic: add GMF (Generic MAC Feeder) module
>   net/ntnic: update alignment for virt queue structs
>   net/ntnic: enable RSS feature
>   net/ntnic: migrate to the RTE spinlock
>   net/ntnic: remove unnecessary
>

Series applied to dpdk-next-net/main, thanks.