[dpdk-dev] [PATCH v11 1/1] net/af_xdp: introduce AF XDP PMD driver

Ferruh Yigit ferruh.yigit at intel.com
Fri Apr 5 17:17:16 CEST 2019


On 4/5/2019 4:05 PM, Ye Xiaolong wrote:
> Hi, Ferruh
> 
> On 04/05, Ferruh Yigit wrote:
>> On 4/4/2019 9:51 AM, Xiaolong Ye wrote:
>>> Add a new PMD driver for AF_XDP which is a proposed faster version of
>>> AF_PACKET interface in Linux. More info about AF_XDP, please refer to [1]
>>> [2].
>>>
>>> This is the vanilla version PMD which just uses a raw buffer registered as
>>> the umem.
>>>
>>> [1] https://fosdem.org/2018/schedule/event/af_xdp/
>>> [2] https://lwn.net/Articles/745934/
>>>
>>> Signed-off-by: Xiaolong Ye <xiaolong.ye at intel.com>
>>
>> <...>
>>
>>> diff --git a/drivers/net/af_xdp/meson.build b/drivers/net/af_xdp/meson.build
>>> new file mode 100644
>>> index 000000000..840c93728
>>> --- /dev/null
>>> +++ b/drivers/net/af_xdp/meson.build
>>> @@ -0,0 +1,19 @@
>>> +# SPDX-License-Identifier: BSD-3-Clause
>>> +# Copyright(c) 2019 Intel Corporation
>>> +
>>> +if host_machine.system() == 'linux'
>>> +	bpf_dep = dependency('libbpf', required: false)
>>> +	if bpf_dep.found()
>>> +		build = true
>>> +	else
>>> +		bpf_dep = cc.find_library('bpf', required: false)
>>> +		if bpf_dep.found() and cc.has_header('bpf/xsk.h', dependencies: bpf_dep) and cc.has_header('linux/if_xdp.h')
>>> +			build = true
>>> +			pkgconfig_extra_libs += '-lbpf'
>>> +		else
>>> +			build = false
>>> +		endif
>>> +	endif
>>> +	ext_deps += bpf_dep
>>> +endif
>>> +sources = files('rte_eth_af_xdp.c')
>>
>> if system is not 'linux', by default build will be 'true', right, so will it try
>> to build the driver in that case?
>> What about setting "build = false" before the linux check, so won't need to set
>> it false again in the if block, only set it true if dependencies found?
> 
> This is a good catch, we do need to initialize build = false first, otherwise
> meson/ninja would just try to build af_xdp pmd if system is not linux, which is
> undesired. Do I need to send a separate patch for this so you can squash it into
> af_xdp pmd patch?

If you are agree with the change, I can send the patch and squash it into the
original af_xdp commit:

  diff --git a/drivers/net/af_xdp/meson.build b/drivers/net/af_xdp/meson.build
  index 840c93728..e3d86c39a 100644
  --- a/drivers/net/af_xdp/meson.build
  +++ b/drivers/net/af_xdp/meson.build
  @@ -1,6 +1,7 @@
   # SPDX-License-Identifier: BSD-3-Clause
   # Copyright(c) 2019 Intel Corporation

  +build = false
   if host_machine.system() == 'linux'
          bpf_dep = dependency('libbpf', required: false)
          if bpf_dep.found()
  @@ -10,8 +11,6 @@ if host_machine.system() == 'linux'
                  if bpf_dep.found() and cc.has_header('bpf/xsk.h',
dependencies: bpf_dep) and cc.has_header('linux/if_xdp.h')
                          build = true
                          pkgconfig_extra_libs += '-lbpf'
  -               else
  -                       build = false
                  endif
          endif
          ext_deps += bpf_dep

> 
>> And can 'ext_deps' go out of if block?
> 
> If we move `ext_deps += bpf_dep` out of if block and build system is not linux, there
> would be error "ERROR: Unknown variable "bpf_dep".", so we need either initialize
> bpf_dep (to value like NULL?) first or keep `ext_deps += bpf_dep` inside the if 
> block, I'd prefer keep it as it is, what's you opinion?

OK to keep as it is.


More information about the dev mailing list