I see. Thanks!
--yliu
On Fri, Sep 08, 2017 at 07:29:48PM +0000, Darrell Ball wrote:
> Hi Yuanhan
>
> In the dpdk public meeting, we requested Simon to also review this series to
> check
> that it is sync with the HWOL for kernel with respect to one or two high
> level aspects.
> I had some comments related to coding standards for V2, but I’ll wait for you
> to respond
> to Simon’s comments before adding my own other comments, in order to avoid
> confusion.
>
> Thanks Darrell
>
>
> On 9/5/17, 2:22 AM, "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 reuses 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
> about 54% performance boost. For PHY-vhost forwarding, I got about 41%
> performance boost. The reason it's lower than v1 is I added the logic
> to get the correct tcp_flags, which examines all packets recieved.
>
> The major issue mentioned in last version is also workarounded: the
> queue index is never set to 0 blindly anymore, but set to the rxq that
> first receives the upcall pkt.
>
> Note that it's disabled by default, which can be enabled by:
>
> $ ovs-vsctl set Open_vSwitch . other_config:hw-offload=true
>
>
> v2: - workaround the queue action issue
> - fixed the tcp_flags being skipped issue, which also fixed the
> build warnings
> - fixed l2 patterns for Intel nic
> - Converted some macros to functions
> - did not hardcode the max number of flow/action
> - rebased on top of the lastest code
>
> Thanks.
>
> --yliu
>
>
> ---
> Finn Christensen (3):
> netdev-dpdk: implement flow put with rte flow
> netdev-dpdk: retry with queue action
> netdev-dpdk: set FDIR config
>
> Shachar Beiser (1):
> dpif-netdev: record rx queue id for the upcall
>
> 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 | 14 ++
> lib/dpif-netdev.c | 132 +++++++++++--
> lib/flow.c | 78 ++++++++
> lib/flow.h | 1 +
> lib/netdev-dpdk.c | 574
> +++++++++++++++++++++++++++++++++++++++++++++++++++++-
> lib/netdev.c | 1 +
> lib/netdev.h | 7 +
> 7 files changed, 795 insertions(+), 12 deletions(-)
>
> --
> 2.7.4
>
>
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev