[ovs-dev] [PATCH V3 00/19] netdev datapath actions offload

Eli Britstein elibr at mellanox.com
Sun Dec 8 13:22:45 UTC 2019


Currently, netdev datapath offload only accelerates the flow match
sequence by associating a mark per flow. This series introduces the full
offload of netdev datapath flows by having the HW also perform the flow
actions.

This series adds HW offload for output, drop, set MAC, set IPv4, set
TCP/UDP ports and tunnel push actions using the DPDK rte_flow API.

v1 Travis passed: https://travis-ci.org/elibritstein/OVS/builds/614511472
v2 Travis passed: https://travis-ci.org/elibritstein/OVS/builds/619262148
v3 Travis passed: https://travis-ci.org/elibritstein/OVS/builds/622253870

v1-v2:
- fallback to mark/rss in case of any failure of action offload.
- dp_layer changed to "in_hw" in case the flow is offloaded.
- using netdev_ports_get instead of dp_netdev_lookup_port in stats reading.
- using flow_dump_next API instead of a new API.
- validity checks for last action of output and clone.
- count action should be done for drop as well.
- validity check for output action.
- added doc in Documentation/howto/dpdk.rst.
v2-v3:
- removed refactoring for netdev-offload-dpdk-flow.c file.
- dropped flush commits.
- dbg prints rate-limited, and outside lock.
- added validity check for output action - same flow_api handle for both netdevs.
- added a mutex to protect possible concurrent deletion/querying of a flow.
- statistics are collected using flow_get API.
- added more documentation in Documentation/howto/dpdk.rst.

Eli Britstein (18):
  netdev-offload-dpdk: Refactor flow patterns
  netdev-offload-dpdk: Refactor action items freeing scheme
  netdev-offload-dpdk: Dynamically allocate pattern items
  netdev-offload-dpdk: Fix typo
  netdev-dpdk: Improve HW offload flow debuggability
  netdev-offload-dpdk: Framework for actions offload
  netdev-dpdk: Introduce rte flow query function
  netdev-offload-dpdk: Protect UFID map by mutex
  netdev-offload-dpdk: Implement flow get method
  dpif-netdev: Populate dpif class field in offload struct
  netdev-dpdk: Getter function for dpdk port id API
  netdev-offload: Introduce a function to validate same flow api handle
  netdev-offload-dpdk: Support offload of output action
  netdev-offload-dpdk: Support offload of drop action
  netdev-offload-dpdk: Support offload of set MAC actions
  netdev-offload-dpdk: Support offload of set IPv4 actions
  netdev-offload-dpdk: Support offload of clone tnl_push/output actions
  netdev-offload-dpdk: Support offload of set TCP/UDP ports actions

Ophir Munk (1):
  dpif-netdev: Read hw stats during flow_dump_next() call

 Documentation/howto/dpdk.rst  |  23 +-
 NEWS                          |   2 +
 lib/dpif-netdev.c             |  49 ++-
 lib/netdev-dpdk.c             | 394 +++++++++++++++++
 lib/netdev-dpdk.h             |   8 +
 lib/netdev-offload-dpdk.c     | 954 +++++++++++++++++++++++++++---------------
 lib/netdev-offload-provider.h |   1 +
 lib/netdev-offload.c          |  12 +
 lib/netdev-offload.h          |   1 +
 9 files changed, 1091 insertions(+), 353 deletions(-)

-- 
2.14.5



More information about the dev mailing list