Re: Packet forwarding in XDP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 14.11.2017 17:41, Daniel Borkmann wrote:
On 11/14/2017 07:57 AM, Anmol Panda wrote:
On 14.11.2017 12:07, David Miller wrote:
From: Anmol Panda <anmol07.visitor@xxxxxxxxxxxxxx>
Date: Tue, 14 Nov 2017 12:03:23 +0530

No bpf syscall, kernel headers too old?

Please enable CONFIG_BPF_SYSCALL in your kernel config.

Hello David,

   Thank you for your response. We have downloaded the latest stable version of the Linux kernel (4.13.12) and we compiled it with these flags enabled as per the directions here: http://cilium.readthedocs.io/en/stable/bpf/ ; .

CONFIG_CGROUP_BPF=y
CONFIG_BPF=y
CONFIG_BPF_SYSCALL=y
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_CLS_BPF=m
CONFIG_NET_CLS_ACT=y
CONFIG_BPF_JIT=y
CONFIG_LWTUNNEL_BPF=y
CONFIG_HAVE_EBPF_JIT=y
CONFIG_BPF_EVENTS=y
CONFIG_TEST_BPF=m

   We also enabled bpf_jit_enable and after the new kernel installation, we verified the setup using the ./test_verifier script int eh tools/testing/selftests/bpf/ folder and the all 506 tests were passed. When we tried the xdp1 program in the sample/tests/ we got the error:

No bpf syscall, kernel headers too old?

   Is there anything we are missing here? Please guide us.

Yes, please make sure that you have a reasonably recent iproute2, if not,
just compile it from the git master branch from:

https://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git/

You kernel headers installed on your machine seem too old, that is why
__NR_bpf is not defined and the iproute2 loader throws this error message
on bpf syscall.

Two options:

1) Install recent kernel headers, for example in your kernel source tree,
   run: make headers_install INSTALL_HDR_PATH=/usr/

or

2) Apply the iproute2 patch with fallback definitions for the syscall
   number manually: https://patchwork.ozlabs.org/patch/776015/ and then
   compile iproute2 again (patch is not in upstream iproute2).

Hope that helps,
Daniel

Hello Daniel,
Thank you for your response. We have completed both the above steps. We aren't getting the sys_call error but now it reports the following issues with the xdp1 program from /samples/bpf/.

 ./xdp1 -N 6
bpf_load_program() err=1


On checking with 'ip link list', we get the following output indicating the program was jited to the device.
'
6: p1p1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 xdp qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether a0:36:9f:42:9d:54 brd ff:ff:ff:ff:ff:ff
    prog/xdp id 14 tag 5c65c4da7b254d8a jited
'

On running the tc_redirect_l2 script, we found this message (its an error/warning we receive on several programs, including some of the p4c-xdp examples). The output after running the tc_redirect_l2 script.sh is

'
./tc_l2_redirect.sh

l2_to_ipip ingress: Note: 8 bytes struct bpf_elf_map fixup performed due to size mismatch!
Note: 8 bytes struct bpf_elf_map fixup performed due to size mismatch!
Note: 8 bytes struct bpf_elf_map fixup performed due to size mismatch!
OK
l2_to_ipip egress: Note: 8 bytes struct bpf_elf_map fixup performed due to size mismatch!
Note: 8 bytes struct bpf_elf_map fixup performed due to size mismatch!
Note: 8 bytes struct bpf_elf_map fixup performed due to size mismatch!
OK
l2_to_ip6tnl ingress: Note: 8 bytes struct bpf_elf_map fixup performed due to size mismatch!
Note: 8 bytes struct bpf_elf_map fixup performed due to size mismatch!
Note: 8 bytes struct bpf_elf_map fixup performed due to size mismatch!
'

  On running the xdp11.o file from p4c/extensions/p4c-xdp/tests/ we get:
'
 ip link set dev p1p1 xdp obj xdp11.o

Note: 8 bytes struct bpf_elf_map fixup performed due to size mismatch!
RTNETLINK answers: Device or resource busy
'

We have two error here. The first one being the bpf_load_program() and the other being the bpf_elf_map_fixup issue. Lastly, the device is reported to be busy although the programs are jited successfully to the device (in this case p1p1). Please guide us.

Thank you,
Sincerely,








[Index of Archives]     [Linux Networking Development]     [Fedora Linux Users]     [Linux SCTP]     [DCCP]     [Gimp]     [Yosemite Campsites]

  Powered by Linux