On Wed, Aug 30, 2017 at 04:23:53PM +0000, Darrell Ball wrote:
> One other general comment about the series:
>
> It is not a ‘big deal’ at this point since we are discussing high level
> concepts, but
> we would need to address these at some point anyways.
>
> Could you run
>
> ./utilities/checkpatch.py <patch>
>
> before the next iteration
Sure.
--yliu
>
> Thanks Darrell
>
>
> On 8/22/17, 11:24 PM, "Yuanhan Liu" <[email protected]> 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, bypassing the
> heavy
> emc processing, including miniflow_extract.
>
> The association is done with CMAP in patch 1. It also resues the flow
> APIs introduced while adding the tc offloads. The emc bypassing is
> done
> in patch 2. The flow offload is done in patch 4, which mainly does two
> things:
>
> - translate the ovs match to DPDK rte flow patterns
> - bind those patterns with a MARK action.
>
> Afterwards, the NIC will set the mark id in every pkt's mbuf when it
> matches the flow. That's basically how we could get the flow directly
> from the received mbuf.
>
> While testing with PHY-PHY forwarding with one core and one queue, I
> got
> almost 80% performance boost. For PHY-vhost forwarding, I got about
> 50%
> performance boost.
>
>
> Though that being said, this patchset still has issues unresolved. The
> major issue is that maybe most NIC (for instance, Mellanox and Intel)
> can not support a pure MARK action. It has to be used together with a
> QUEUE action, which in turn needs a queue index. That comes to the
> issue:
> the queue index is not given in the flow context. To make it work,
> patch
> 5 just set the queue index to 0, which is obviously wrong. One
> possible
> solution is to record the rxq and pass it down to the flow creation
> stage. It would be much better, but it's still far away from being
> perfect.
> Because it might have changed the steering rules stealthily, which may
> break the default RSS setup by OVS-DPDK.
>
> The reason I still want to send it out is to get more
> comments/thoughts
> from community on this whole patchset. Meanwhile, I will try to
> resolve
> the QUEUE action issue.
>
> Note that it's disabled by default, which can be enabled by:
>
> $ ovs-vsctl set Open_vSwitch . other_config:hw-offload=true
>
> Thanks.
>
> --yliu
>
> ---
> Finn Christensen (3):
> netdev-dpdk: implement flow put with rte flow
> netdev-dpdk: retry with queue action
> netdev-dpdk: set FDIR config
>
> Yuanhan Liu (4):
> dpif-netdev: associate flow with a mark id
> dpif-netdev: retrieve flow directly from the flow mark
> netdev-dpdk: convert ufid to dpdk flow
> netdev-dpdk: remove offloaded flow on deletion
>
> lib/dp-packet.h | 13 ++
> lib/dpif-netdev.c | 105 +++++++++++
> lib/netdev-dpdk.c | 511
> +++++++++++++++++++++++++++++++++++++++++++++++++++++-
> lib/netdev.h | 6 +
> 4 files changed, 634 insertions(+), 1 deletion(-)
>
> --
> 2.7.4
>
>
>
>
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev