Add HWS support for both GENEVE and GENEVE TLV option headers. This patchset supports:
- Add HW support for "RTE_FLOW_ITEM_TYPE_GENEVE" flow item. - Add HW support for "RTE_FLOW_ITEM_TYPE_GENEVE_OPT" flow item. - Add HW support for "RTE_FLOW_FIELD_GENEVE_VNI" for modify field flow action. - Add HW support for "RTE_FLOW_FIELD_GENEVE_OPT_TYPE" for modify field flow action. - Add HW support for "RTE_FLOW_FIELD_GENEVE_OPT_CLASS" for modify field flow action. - Add HW support for "RTE_FLOW_FIELD_GENEVE_OPT_DATA" for modify field flow action. The GENEVE TLV options support using flex parser. The profile should be specified to either 8 for multiple option or 0 for single option. A new API is added to create the GENEVE option parser before using it in templates API. Alex Vesker (4): net/mlx5/hws: fix tunnel protocol checks net/mlx5/hws: increase hl size for future compatibility net/mlx5/hws: support GENEVE matching net/mlx5/hws: support GENEVE options header Michael Baum (19): common/mlx5: fix duplicate read of general capabilities common/mlx5: fix query sample info capability net/mlx5: remove GENEVE options length limitation net/mlx5: fix GENEVE option item translation common/mlx5: add system image GUID attribute common/mlx5: add GENEVE TLV option attribute structure common/mlx5: add PRM attribute for TLV sample common/mlx5: add sample info query syndrome into error log common/mlx5: query GENEVE option sample ID from HCA attr common/mlx5: add function to query GENEVE TLV option net/mlx5: add physical device handle net/mlx5: add GENEVE TLV options parser API net/mlx5: add API to expose GENEVE option FW information net/mlx5: add testpmd support for GENEVE TLV parser net/mlx5: add support for GENEVE and option item in HWS net/mlx5: add GENEVE option support for profile 0 net/mlx5: add GENEVE option support for group 0 net/mlx5: add support for GENEVE VNI modify field net/mlx5: add support for modify GENEVE option header doc/guides/nics/mlx5.rst | 251 +++++- doc/guides/platform/mlx5.rst | 2 + doc/guides/rel_notes/release_24_03.rst | 9 + drivers/common/mlx5/mlx5_devx_cmds.c | 139 +++- drivers/common/mlx5/mlx5_devx_cmds.h | 29 +- drivers/common/mlx5/mlx5_prm.h | 20 +- drivers/common/mlx5/version.map | 1 + drivers/net/mlx5/hws/mlx5dr_definer.c | 277 ++++++- drivers/net/mlx5/hws/mlx5dr_definer.h | 49 +- drivers/net/mlx5/meson.build | 1 + drivers/net/mlx5/mlx5.c | 115 ++- drivers/net/mlx5/mlx5.h | 21 + drivers/net/mlx5/mlx5_flow.c | 30 + drivers/net/mlx5/mlx5_flow.h | 92 ++- drivers/net/mlx5/mlx5_flow_dv.c | 158 ++-- drivers/net/mlx5/mlx5_flow_geneve.c | 1011 ++++++++++++++++++++++++ drivers/net/mlx5/mlx5_flow_hw.c | 127 ++- drivers/net/mlx5/mlx5_testpmd.c | 556 ++++++++++++- drivers/net/mlx5/rte_pmd_mlx5.h | 102 +++ drivers/net/mlx5/version.map | 3 + 20 files changed, 2809 insertions(+), 184 deletions(-) create mode 100644 drivers/net/mlx5/mlx5_flow_geneve.c -- 2.25.1