[ovs-dev] [PATCH v4 0/5] netdev datapath: Partial action offload
sriharsha.basavapatna at broadcom.com
Mon Jun 29 09:50:15 UTC 2020
This patchset extends the "Partial HW acceleration" mode to offload a
part of the action processing to HW, instead of offloading just lookup
(MARK/RSS), for "vhost-user" ports. This is referred to as "Partial Action
Offload". This mode does not require SRIOV/switchdev configuration. In this
mode, forwarding (output) action is still performed by OVS-DPDK SW datapath.
This patchset utilizes the full-offload framework available in OVS-DPDK
to offload specific actions to HW. In this initial patchset we support
offloading of VXLAN encap action. The changes are based on the VXLAN encap
full-offload patchset currently being reviewed on ovs-dev:
- Removed mega-ufid mapping code from dpif-netdev (patch #5) and updated the
existing mega-ufid mapping code in netdev-offload-dpdk to support partial
- Added more commit log comments in the refactoring patch (#1).
- Removed wrapper function for should_partial_offload_egress().
- Removed partial offload check for output action in parse_flow_actions().
- Changed patch sequence (skip-encap and get-stats before offload patch).
- Removed locking code (details in email), added inline comments.
- Moved mega-ufid mapping code from skip-encap (#3) to the offload patch (#5).
Fixed review comments from Eli:
- Revamped action list parsing to reject multiple clone/output actions
- Updated comments to reflect support for single clone/output action
- Removed place-holder function for ingress partial action offload
- Created a separate patch (#2) to query dpdk-vhost netdevs
- Set transfer attribute to 0 for partial action offload
- Updated data type of 'dp_flow' in 'dp_netdev_execute_aux'
- Added a mutex to synchronize between offload and datapath threads
- Avoid fall back to mark/rss when egress partial offload fails
- Drop count action for partial action offload
- Avoid duplicate offload requests for the same mega-ufid (from PMD threads)
- Added a coverage counter to track pkts with tnl-push partial offloaded
- Fixed dp_netdev_pmd_remove_flow() to delete partial offloaded flow
Sriharsha Basavapatna (5):
dpif-netdev: Refactor dp_netdev_flow_offload_put()
netdev-dpdk: provide a function to identify dpdk-vhost netdevs
dpif-netdev: Skip encap action during datapath execution
dpif-netdev: Support flow_get() with partial-action-offload
dpif-netdev: Support partial-action-offload of VXLAN encap flow
lib/dpif-netdev.c | 330 ++++++++++++++++++++++++++++++++------
lib/netdev-dpdk.c | 5 +
lib/netdev-dpdk.h | 1 +
lib/netdev-offload-dpdk.c | 78 ++++++---
lib/netdev-offload.h | 2 +
5 files changed, 352 insertions(+), 64 deletions(-)
More information about the dev