mbox series

[v5,0/8] ethdev: introduce GENEVE header TLV option item

Message ID 20210112140241.15914-1-shirik@nvidia.com (mailing list archive)
Headers show
Series ethdev: introduce GENEVE header TLV option item | expand

Message

Shiri Kuzin Jan. 12, 2021, 2:02 p.m. UTC
The Geneve tunneling protocol is designed to allow the user to specify 
some data context on the packet.
The GENEVE TLV (Type-Length-Variable) Option is the mean intended to 
present the user data.

In order to support GENEVE TLV Option the new rte_flow item 
"rte_flow_item_geneve_opt" is introduced.
The new item contains the values and masks for the following fields:
-option class
-option type
-length
-data

The usage example:
"flow create 0 ingress pattern eth / ipv4 / udp / geneve vni is 100 / 
geneve-opt class is 5 length is 1 type is 0 data is 0x66998800 / 
end actions count / drop / end"


New item will be added to testpmd to support raw encap/decap action.

v5:
-added Devx function to def file.

v4:
- fixed setting option length.
- fixed testpmd calculation of GENEVE option size.
- updated documentation.

v3:
- updated documentation.

v2:
- removed pedantic.

Shiri Kuzin (7):
  lib/librte_ethdev: introduce GENEVE header TLV option item
  common/mlx5: check GENEVE TLV support in HCA attributes
  common/mlx5: create GENEVE TLV option object with DevX
  net/mlx5: create GENEVE TLV option management
  net/mlx5: add GENEVE TLV option flow validation
  net/mlx5: add GENEVE TLV option flow translation
  doc: update GENEVE TLV option support

Viacheslav Ovsiienko (1):
  app/testpmd: add GENEVE option item support

 app/test-pmd/cmdline_flow.c                   | 101 ++++++++-
 doc/guides/nics/mlx5.rst                      |  23 +-
 doc/guides/rel_notes/release_21_02.rst        |   8 +
 doc/guides/testpmd_app_ug/testpmd_funcs.rst   |   8 +
 drivers/common/mlx5/mlx5_devx_cmds.c          |  63 +++++-
 drivers/common/mlx5/mlx5_devx_cmds.h          |   9 +
 drivers/common/mlx5/mlx5_prm.h                |  28 ++-
 .../common/mlx5/rte_common_mlx5_exports.def   |   1 +
 drivers/common/mlx5/version.map               |   1 +
 drivers/net/mlx5/mlx5.c                       |   2 +
 drivers/net/mlx5/mlx5.h                       |  13 ++
 drivers/net/mlx5/mlx5_flow.c                  | 120 +++++++++++
 drivers/net/mlx5/mlx5_flow.h                  |  13 +-
 drivers/net/mlx5/mlx5_flow_dv.c               | 198 +++++++++++++++++-
 lib/librte_ethdev/rte_flow.c                  |   1 +
 lib/librte_ethdev/rte_flow.h                  |  27 +++
 16 files changed, 603 insertions(+), 13 deletions(-)