[RFC,v2,0/3] ethdev: add IP address and TCP/UDP port rewrite actions to flow API

Message ID cover.1534166371.git.rahul.lakkireddy@chelsio.com (mailing list archive)
Headers
Series ethdev: add IP address and TCP/UDP port rewrite actions to flow API |

Message

Rahul Lakkireddy Aug. 13, 2018, 1:36 p.m. UTC
  This series of patches add support for actions:
- SET_IPV4_SRC - set a new IPv4 source address.
- SET_IPV4_DST - set a new IPv4 destination address.
- SET_IPV6_SRC - set a new IPv6 source address.
- SET_IPV6_DST - set a new IPv6 destination address.
- SET_TP_SRC - set a new TCP/UDP source port number.
- SET_TP_DST - set a new TCP/UDP destination port number.

These actions are useful in Network Address Translation use case
to edit IP address and TCP/UDP port numbers before switching
the packets out to the destination device port.

Patch 1 adds support for IP address rewrite to rte_flow and testpmd.

Patch 2 adds support for TCP/UDP port rewrite to rte_flow and testpmd.

Patch 3 shows CXGBE PMD example to offload these actions to hardware.

Feedback and suggestions will be much appreciated.

Thanks,
Rahul

---
v2
- Remove OpenFlow prefix.
- Remove Network (NW) prefix from IPv4 and IPv6 rewrite actions.
- Re-based to tip.

Shagun Agrawal (3):
  ethdev: add flow api actions to modify IP addresses
  ethdev: add flow api actions to modify TCP/UDP port numbers
  net/cxgbe: add flow actions to modify IP and TCP/UDP port address

 app/test-pmd/cmdline_flow.c                 | 150 ++++++++++++++++++++++++++++
 app/test-pmd/config.c                       |  12 +++
 doc/guides/prog_guide/rte_flow.rst          |  90 +++++++++++++++++
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  24 +++++
 drivers/net/cxgbe/base/common.h             |   1 +
 drivers/net/cxgbe/base/t4fw_interface.h     |  50 ++++++++++
 drivers/net/cxgbe/cxgbe_filter.c            |  21 +++-
 drivers/net/cxgbe/cxgbe_filter.h            |  23 +++++
 drivers/net/cxgbe/cxgbe_flow.c              | 100 ++++++++++++++++++-
 drivers/net/cxgbe/cxgbe_main.c              |  10 ++
 lib/librte_ethdev/rte_flow.c                |  12 +++
 lib/librte_ethdev/rte_flow.h                |  87 ++++++++++++++++
 12 files changed, 575 insertions(+), 5 deletions(-)