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

Ilya Maximets i.maximets at samsung.com
Tue Jul 9 10:28:49 UTC 2019


On 09.07.2019 0:40, William Tu wrote:
> 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://protect2.fireeye.com/url?k=d08103f085a9784c.d08088bf-02c8b41b40162198&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://protect2.fireeye.com/url?k=b5d6803904bdf0bd.b5d70b76-10386d8b8e3bc0a8&u=https://lkml.org/lkml/2019/6/27/255
> 
> I will try and see if it fixes.

You might want to check v6 of this patch which is already in
current 'bpf' and 'bpf-next' trees:
  https://patchwork.ozlabs.org/project/netdev/list/?series=116652&state=*

And the incremental patch for it (but it's unlikely that you caught this
deadlock):
  https://patchwork.ozlabs.org/patch/1129047/

Best regards, Ilya Maximets.

> 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