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