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