Hi,

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.

Thanks,
-Harsha

******

v5-->v6:

- Addressed the following comments from Ilya:
  - Introduced new flow offload APIs for egress & ingress partial offload
  - Added netdev-offload-dpdk implementation of the new APIs
  - Removed netdev specific info from the datapath layer
  - Removed flow_api_supported() checks from the datapath layer
  - Added dp class-specific assistance to avoid impact to kernel-dp (vlan)
  - Updated flow-dump identifiers for partial-action offload

v4-->v5:

- Rebased to the current ovs-master (includes vxlan-encap full offload)
- Added 2 patches to support partial offload of vlan push/pop actions

v3-->v4:

- 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
  action offload.

v2-->v3:

- 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).

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 (8):
  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
  dpif-netdev: Support partial offload of PUSH_VLAN action
  dpif-netdev: Support partial offload of POP_VLAN action
  dpctl: update flow-dump output to reflect partial action offload

 lib/dpctl.c                   |   5 +-
 lib/dpif-netdev.c             | 295 +++++++++++++++++++++++++------
 lib/dpif.c                    |   2 +-
 lib/netdev-dpdk.c             |   5 +
 lib/netdev-dpdk.h             |   1 +
 lib/netdev-offload-dpdk.c     | 315 +++++++++++++++++++++++++++++++---
 lib/netdev-offload-provider.h |  13 ++
 lib/netdev-offload.c          | 102 +++++++++++
 lib/netdev-offload.h          |  12 +-
 lib/odp-execute.c             |  25 ++-
 lib/odp-execute.h             |   5 +-
 11 files changed, 693 insertions(+), 87 deletions(-)

-- 
2.25.0.rc2

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to