[ovs-dev] [PATCH] netdev-offload-dpdk: Reverting Temporary patch to fix broken hardware offload ethernet matching for XL710 NICs.

Finn, Emma emma.finn at intel.com
Mon Dec 7 16:39:21 UTC 2020



> -----Original Message-----
> From: Stokes, Ian <ian.stokes at intel.com>
> Sent: Monday 7 December 2020 16:32
> To: Finn, Emma <emma.finn at intel.com>; dev at openvswitch.org;
> i.maximets at ovn.org; elibr at nvidia.com
> Subject: RE: [PATCH] netdev-offload-dpdk: Reverting Temporary patch to fix
> broken hardware offload ethernet matching for XL710 NICs.
> 
> > Removing temporary patch - 023f257 (netdev-offload-dpdk: Fix for
> > broken ethernet matching HWOL for XL710NIC).
> > Ethernet pattern is now being set correctly withtin the i40e PMD.
> >
> > Signed-off-by: Emma Finn <emma.finn at intel.com>
> 
> Thanks for the patch Emma.
> 
> I think this has a dependency on moving to DPDK 20.11 if I'm correct? As such
> we should hold off applying until then?

The fix was backported to DPDK 19.11. But we can hold off until 20.11 if we want.

Thanks, 
Emma

> 
> Regards
> Ian
> > ---
> >  lib/netdev-offload-dpdk.c | 15 +--------------
> >  1 file changed, 1 insertion(+), 14 deletions(-)
> >
> > diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c
> > index 01c52e1..916f42b 100644
> > --- a/lib/netdev-offload-dpdk.c
> > +++ b/lib/netdev-offload-dpdk.c
> > @@ -695,20 +695,7 @@ parse_flow_match(struct flow_patterns *patterns,
> >      consumed_masks->packet_type = 0;
> >
> >      /* Eth */
> > -    if (match->wc.masks.dl_type == OVS_BE16_MAX && is_ip_any(&match-
> > >flow)
> > -        && eth_addr_is_zero(match->wc.masks.dl_dst)
> > -        && eth_addr_is_zero(match->wc.masks.dl_src)) {
> > -        /*
> > -         * This is a temporary work around to fix ethernet pattern for partial
> > -         * hardware offload for X710 devices. This fix will be reverted once
> > -         * the issue is fixed within the i40e PMD driver.
> > -         */
> > -        add_flow_pattern(patterns, RTE_FLOW_ITEM_TYPE_ETH, NULL, NULL);
> > -
> > -        memset(&consumed_masks->dl_dst, 0, sizeof consumed_masks-
> >dl_dst);
> > -        memset(&consumed_masks->dl_src, 0, sizeof consumed_masks-
> >dl_src);
> > -        consumed_masks->dl_type = 0;
> > -    } else if (match->wc.masks.dl_type ||
> > +    if (match->wc.masks.dl_type ||
> >                 !eth_addr_is_zero(match->wc.masks.dl_src) ||
> >                 !eth_addr_is_zero(match->wc.masks.dl_dst)) {
> >          struct rte_flow_item_eth *spec, *mask;
> > --
> > 2.7.4
> 



More information about the dev mailing list