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

Reply via email to