[ovs-dev] [RFC PATCH 0/5] RFC for Partial action offload

Sriharsha Basavapatna sriharsha.basavapatna at broadcom.com
Mon May 18 19:27:26 UTC 2020


Hi,

This RFC patchset extends the "Partial HW acceleration" mode to offload
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.

Note:
This RFC patchset assumes that the full-offload framework is available
in OVS-DPDK and utilizes it to offload specific actions to HW. In this
initial patchset we support offloading of VXLAN encap action. The changes
are based on the VXLAN full offload patchset currently being reviewed
on ovs-dev: 
https://mail.openvswitch.org/pipermail/ovs-dev/2020-January/367010.html

I would appreciate feedback on this approach to support partial action
offload for vhost-user ports.

Thanks,
-Harsha

******

v1-->v2:

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

Other changes:
- 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: Support partial-action-offload of VXLAN encap flow
  dpif-netdev: Skip encap action during datapath execution
  dpif-netdev: Support flow_get() with partial-action-offload

 lib/dpif-netdev.c         | 512 ++++++++++++++++++++++++++++++++++----
 lib/netdev-dpdk.c         |   5 +
 lib/netdev-dpdk.h         |   1 +
 lib/netdev-offload-dpdk.c |  50 +++-
 lib/netdev-offload.h      |   2 +
 5 files changed, 513 insertions(+), 57 deletions(-)

-- 
2.25.0.rc2



More information about the dev mailing list