[ovs-dev] [PATCH v5 0/5] OVS-DPDK flow offload with rte_flow

Yuanhan Liu yliu at fridaylinux.org
Wed Jan 17 10:01:54 UTC 2018


On Mon, Jan 15, 2018 at 05:28:18PM +0000, Stokes, Ian wrote:
> > Hi,
> > 
> > Here is a joint work from Mellanox and Napatech, to enable the flow hw
> > offload with the DPDK generic flow interface (rte_flow).
> > 
> > The basic idea is to associate the flow with a mark id (a unit32_t
> > number).
> > Later, we then get the flow directly from the mark id, which could bypass
> > some heavy CPU operations, including but not limiting to mini flow
> > extract, emc lookup, dpcls lookup, etc.
> > 
> > The association is done with CMAP in patch 1. The CPU workload bypassing
> > is done in patch 2. The flow offload is done in patch 3, which mainly does
> > two things:
> > 
> > - translate the ovs match to DPDK rte flow patterns
> > - bind those patterns with a RSS + MARK action.
> > 
> > Patch 5 makes the offload work happen in another thread, for leaving the
> > datapath as light as possible.
> > 
> > A PHY-PHY forwarding with 1000 mega flows (udp,tp_src=1000-1999) and 1
> > million streams (tp_src=1000-1999, tp_dst=2000-2999) show more than 260%
> > performance boost.
> > 
> > Note that it's disabled by default, which can be enabled by:
> > 
> >     $ ovs-vsctl set Open_vSwitch . other_config:hw-offload=true
> 
> Hi Yuanhan,
> 
> Thanks for working on this, I'll be looking at this over the coming week so don't consider this a full review.
> 
> Just a general comment, at first glance there doesn't seem to be any documentation in the patchset?

Right, my bad.

> I would expect a patch for the DPDK section of the OVS docs at minimum detailing:
> 
> (i) HWOL requirements (Any specific SW/drivers required or DPDK libs/PMDs etc. that have to be enabled for HWOL).
> (ii) HWOL Usage (Enablement and disablement as shown above).
> (iii) List of Validated HW devices (As HWOL functionality will vary between devices it would be good to provide some known 'verified' cards to use with it. At this stage we don't have to have every card that it will work with it but I'd like to see a list of NIC Models that this has been validated on to date).
> (iv) Any Known limitations.
> 
> You'll also have to add an entry to the NEWS document to flag that HWOL has been introduced to OVS with DPDK.
> 
> As discussed previously on the community call, at this point the feature should be marked experimental in both NEWS and the documentation, this is just to signify that it is subject to change as more capabilities such as full offload is added over time.

For not flooding the mailing list, here I listed the changes I made.
Please help review it. Also, please let me know whether I should send
out a new version (with the doc change) soon or I should wait for you
full review.

Regarding the validated NICs, probably Finn could add the nics from Napatech.

---
diff --git a/Documentation/howto/dpdk.rst b/Documentation/howto/dpdk.rst
index d123819..20a4190 100644
--- a/Documentation/howto/dpdk.rst
+++ b/Documentation/howto/dpdk.rst
@@ -709,3 +709,19 @@ devices to bridge ``br0``. Once complete, follow the below steps:
    Check traffic on multiple queues::

        $ cat /proc/interrupts | grep virtio
+
+.. _dpdk-flow-hardware-offload:
+
+Flow Hardware Offload (Experimental)
+------------------------------------
+
+The flow hardware offload is disabled by default and can be enabled by::
+
+    $ ovs-vsctl set Open_vSwitch . other_config:hw-offload=true
+
+So far only partial flow offload is implemented. Moreover, it only works
+with PDM drivers have the rte flow action "MARK + RSS" support.
+
+The validated NICs are:
+
+- Mellanox (ConnectX-4, ConnectX-4 Lx, ConnectX-5)
diff --git a/NEWS b/NEWS
index 89bb7a7..02ce97d 100644
--- a/NEWS
+++ b/NEWS
@@ -25,6 +25,7 @@ Post-v2.8.0
    - DPDK:
      * Add support for DPDK v17.11
      * Add support for vHost IOMMU
+     * Add experimental flow hardware offload support

 v2.8.0 - 31 Aug 2017
 --------------------


More information about the dev mailing list