Tunnel Offload API provides hardware independent, unified model to offload tunneled traffic. Key model elements are: - apply matches to both outer and inner packet headers during entire offload procedure; - restore outer header of partially offloaded packet; - model is implemented as a set of helper functions.
v2: * documentation updates * MLX5 PMD implementation for tunnel offload * testpmd updates for tunnel offload v3: * documentation updates * MLX5 PMD updates * testpmd updates v4: * updated patch: allow negative values in flow rule types Eli Britstein (1): ethdev: tunnel offload model Gregory Etelson (3): ethdev: allow negative values in flow rule types net/mlx5: implement tunnel offload API app/testpmd: add commands for tunnel offload API app/test-pmd/cmdline_flow.c | 170 ++++- app/test-pmd/config.c | 253 +++++++- app/test-pmd/testpmd.c | 5 +- app/test-pmd/testpmd.h | 34 +- app/test-pmd/util.c | 35 +- doc/guides/nics/mlx5.rst | 3 + doc/guides/prog_guide/rte_flow.rst | 108 ++++ doc/guides/rel_notes/release_20_11.rst | 9 + doc/guides/testpmd_app_ug/testpmd_funcs.rst | 49 ++ drivers/net/mlx5/linux/mlx5_os.c | 18 + drivers/net/mlx5/mlx5.c | 8 +- drivers/net/mlx5/mlx5.h | 3 + drivers/net/mlx5/mlx5_defs.h | 2 + drivers/net/mlx5/mlx5_flow.c | 678 +++++++++++++++++++- drivers/net/mlx5/mlx5_flow.h | 173 ++++- drivers/net/mlx5/mlx5_flow_dv.c | 241 ++++++- lib/librte_ethdev/rte_ethdev_version.map | 6 + lib/librte_ethdev/rte_flow.c | 140 +++- lib/librte_ethdev/rte_flow.h | 195 ++++++ lib/librte_ethdev/rte_flow_driver.h | 32 + 20 files changed, 2097 insertions(+), 65 deletions(-) -- 2.28.0