[ovs-dev] [PATCHv14 2/2] netdev-afxdp: add new netdev type for AF_XDP.

William Tu u9012063 at gmail.com
Mon Jul 8 21:40:18 UTC 2019


On Mon, Jul 8, 2019 at 1:50 PM William Tu <u9012063 at gmail.com> wrote:
>
> Hi Ilya,
>
> Thanks for all the feedback!
>
> On Fri, Jul 5, 2019 at 8:32 AM Ilya Maximets <i.maximets at samsung.com> wrote:
> >
> > On 01.07.2019 19:08, William Tu wrote:
> > > The patch introduces experimental AF_XDP support for OVS netdev.
> > > AF_XDP, the Address Family of the eXpress Data Path, is a new Linux socket
> > > type built upon the eBPF and XDP technology.  It is aims to have comparable
> > > performance to DPDK but cooperate better with existing kernel's networking
> > > stack.  An AF_XDP socket receives and sends packets from an eBPF/XDP program
> > > attached to the netdev, by-passing a couple of Linux kernel's subsystems
> > > As a result, AF_XDP socket shows much better performance than AF_PACKET
> > > For more details about AF_XDP, please see linux kernel's
> > > Documentation/networking/af_xdp.rst. Note that by default, this feature is
> > > not compiled in.
> > >
> > > Signed-off-by: William Tu <u9012063 at gmail.com>
> > > ---
> > >
> > > v13-v14
> > > - Mainly address issue reported by Ilya
> > >   https://protect2.fireeye.com/url?k=a0e04e091a64b944.a0e1c546-0896b5863118ce25&u=https://patchwork.ozlabs.org/patch/1118972/
> > >   when doing 'make check-afxdp'
> > > - Fix xdp frame headroom issue
> > > - Fix vlan test cases by disabling txvlan offload
> > > - Skip cvlan
> > > - Document TCP limitation (currently all tcp tests fail due to
> > >   kernel veth driver)
> >
> > Maybe it's better to skip them too? The easy way could be:
> >
> > diff --git a/tests/system-afxdp-macros.at b/tests/system-afxdp-macros.at
> > index 5ee2ceb1a..f0683c0a9 100644
> > --- a/tests/system-afxdp-macros.at
> > +++ b/tests/system-afxdp-macros.at
> > @@ -30,3 +30,10 @@ m4_define([CONFIGURE_VETH_OFFLOADS],
> >       AT_CHECK([ethtool -K $1 txvlan off], [0], [ignore], [ignore])
> >      ]
> >  )
> > +
> > +# OVS_START_L7([namespace], [protocol])
> > +#
> > +# AF_XDP doesn't work with TCP over virtual interfaces for now.
> > +#
> > +m4_define([OVS_START_L7],
> > +   [AT_SKIP_IF([:])])
> > ---
> >
> > BTW, documentation should stay.
> >
> OK Will do it!
>
> I rebase to master, added the above and run
> make check-afxdp TESTSUITEFLAGS='-v -x 2'
> it hangs at
> ip link del ovs-$1
I think it's related to your pending patch to kernel about
"Fix hang while unregistering device bound to xdp socket"
https://lkml.org/lkml/2019/6/27/255

I will try and see if it fixes.
Thanks
William

> I have to remove it to make it works
> --- a/tests/system-afxdp-macros.at
> +++ b/tests/system-afxdp-macros.at
> @@ -15,7 +15,6 @@ m4_define([ADD_VETH],
>        if test -n "$6"; then
>          NS_CHECK_EXEC([$2], [ip route add default via $6])
>        fi
> -      on_exit 'ip link del ovs-$1'
>      ]
>  )
> I don't know why, but in the end
> ip netns del at_ns0
> clean up the ovs-p0 device
>


More information about the dev mailing list