[0/3] ethdev: add IP address and TCP/UDP port rewrite actions to flow API
mbox series

Message ID cover.1537776502.git.rahul.lakkireddy@chelsio.com
Headers show
Series
  • ethdev: add IP address and TCP/UDP port rewrite actions to flow API
Related show

Message

Rahul Lakkireddy Sept. 24, 2018, 8:28 a.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

RFC v1: http://mails.dpdk.org/archives/dev/2018-June/104913.html
RFC v2: http://mails.dpdk.org/archives/dev/2018-August/109672.html

---
Changes since RFC v2:
- Updated comments, help messages, and doc to indicate that IP/TCP/UDP
  of the outermost headers are modified.
- Updated comments and doc to indicate that a corresponding valid flow
  pattern item must be specified to offload corresponding header rewrite
  actions.
- Re-based CXGBE PMD changes in patch 3 to tip.
- Updated all instances of fw_filter_wr to new fw_filter2_wr and removed
  fw_filter_wr.
- Ensure correct ULP type is set when offloading NAT actions.
- Returning appropriate RTE_FLOW_ERROR_TYPE_ACTION error if a corresponding
  valid flow pattern item is not found.
- Updated release notes.


Rahul Lakkireddy (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                 | 156 +++++++++++++++++
 app/test-pmd/config.c                       |  12 ++
 doc/guides/prog_guide/rte_flow.rst          | 108 ++++++++++++
 doc/guides/rel_notes/release_18_11.rst      |  12 +-
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  28 +++
 drivers/net/cxgbe/base/common.h             |   1 +
 drivers/net/cxgbe/base/t4_msg.h             |   1 +
 drivers/net/cxgbe/base/t4fw_interface.h     |  23 ++-
 drivers/net/cxgbe/cxgbe_filter.c            |  37 +++-
 drivers/net/cxgbe/cxgbe_filter.h            |  23 +++
 drivers/net/cxgbe/cxgbe_flow.c              | 178 +++++++++++++++++++-
 drivers/net/cxgbe/cxgbe_main.c              |  10 ++
 lib/librte_ethdev/rte_flow.c                |  12 ++
 lib/librte_ethdev/rte_flow.h                | 107 ++++++++++++
 14 files changed, 696 insertions(+), 12 deletions(-)

Comments

Thomas Monjalon Oct. 3, 2018, 8:33 p.m. UTC | #1
24/09/2018 10:28, Rahul Lakkireddy:
> Rahul Lakkireddy (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

If no more comment, I think we should accept this series.