[PATCH v4 00/86] Provide flow filter API and statistics
Serhii Iliushyk
sil-plv at napatech.com
Tue Oct 29 17:41:04 CET 2024
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)
- Multiple TX and RX queues.
- Scattered and gather for TX and RX.
- 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.
- VLAN filtering.
- RX VLAN stripping via raw decap.
- TX VLAN insertion via raw encap.
- Flow API.
- Multiple process.
- Tunnel types: GTP.
- Tunnel HW offload: Packet type, inner/outer RSS, IP and UDP checksum
verification.
- Support for multiple rte_flow groups.
- Encapsulation and decapsulation of GTP data.
- Packet modification: NAT, TTL decrement, DSCP tagging
- Traffic mirroring.
- Jumbo frame support.
- Port and queue statistics.
- RMON statistics in extended stats.
- Flow metering, including meter policy API.
- Link state information.
- CAM and TCAM based matching.
- Exact match of 140 million flows and policies.
- Basic stats
- Extended stats
- Flow metering, including meter policy API.
- Flow update. Update of the action list for specific flow
- Asynchronous flow API
- MTU update
Update: the pthread API was replaced with RTE spinlock in the separate patch.
Danylo Vodopianov (43):
net/ntnic: add API for configuration NT flow dev
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 API
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 flow aging API
net/ntnic: add aging API to the inline profile
net/ntnic: add flow info and flow configure APIs
net/ntnic: add flow aging event
net/ntnic: add termination thread
net/ntnic: add aging documentation
net/ntnic: add meter API
net/ntnic: add meter module
net/ntnic: update meter documentation
net/ntnic: add action update
net/ntnic: add flow action update
net/ntnic: flow update was added
net/ntnic: add async create/destroy API declaration
net/ntnic: add async template API declaration
net/ntnic: add async flow create/delete API implementation
net/ntnic: add async template APIs implementation
Oleksandr Kolomeiets (18):
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: update documentation
net/ntnic: add MTU configuration
Serhii Iliushyk (25):
net/ntnic: add flow filter API
net/ntnic: add minimal create/destroy flow operations
net/ntnic: add internal flow create/destroy API
net/ntnic: add minimal NT flow inline profile
net/ntnic: add management API 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: update documentation for flow actions update
net/ntnic: migrate to the RTE spinlock
net/ntnic: remove unnecessary type cast
net/ntnic: update async flow API documentation
net/ntnic: update documentation for set MTU
doc/guides/nics/features/ntnic.ini | 33 +
doc/guides/nics/ntnic.rst | 52 +
doc/guides/rel_notes/release_24_11.rst | 7 +
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 | 935 ++-
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 | 6086 +++++++++++++++++
.../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 +
79 files changed, 25772 insertions(+), 1109 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
--
2.45.0
More information about the dev
mailing list