Re: Cannot load eBPF program as XDP

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

 



On Tue, Jun 27, 2017 at 7:32 PM, MD I. Islam <tamim@xxxxxxxxxxx> wrote:
> Hi Song
>
> On Tue, Jun 27, 2017 at 10:05 PM, Y Song <ys114321@xxxxxxxxx> wrote:
>> xdp meta data is different:
>>
>> struct xdp_md {
>>         __u32 data;
>>         __u32 data_end;
>> };
>>
>> All other fields available for skb metadata won't be available in XDP.
>> That is way
>> you get verification failure.
>>
>
>
> Thanks for the quick reply! Now I'm trying xdp1_kern.c which uses
> xdp_md. Now I'm getting the error:
>
> Note: 8 bytes struct bpf_elf_map fixup performed due to size mismatch!
> RTNETLINK answers: Operation not supported

I do not know what "Note: 8 bytes ..." error means, I did not find a
similar error
message pattern in latest net-next.

For RTNETLINK error, most like the networking interface you tried to attach
does not support XDP. It needs to a physical device or a generic
device, based on options. Check the user space program and you can
find various options.

>
> Could you please advise me what is wrong here?
>
>> On Tue, Jun 27, 2017 at 7:00 PM, MD I. Islam <tamim@xxxxxxxxxxx> wrote:
>>> Hi
>>>
>>> I'm using http://lingrok.org/xref/linux-net-next/samples/bpf/parse_simple.c.
>>>
>>> I can load the program as tc_cls using following commands:
>>>
>>> sudo tc qdisc add dev eno1 clsact
>>> sudo tc filter add dev eno1  ingress bpf da obj parse_simple.o sec simple
>>>
>>> But I get error when I load the same program in XDP:
>>>
>>> sudo ip link set dev eno1 xdp obj parse_simple.o section simple
>>>
>>> Prog section 'simple' rejected: Permission denied (13)!
>>>  - Type:         6
>>>  - Instructions: 23 (0 over limit)
>>>  - License:      GPL
>>>
>>> Verifier analysis:
>>>
>>> 0: (b7) r0 = 0
>>> 1: (61) r2 = *(u32 *)(r1 +80)
>>> invalid bpf_context access off=80 size=4
>>>
>>> Error fetching program/map!
>>>
>>> I made sure that the parse_simple.o have necessary permission. Could
>>> you please advise what is wrong here? I'm using Kernel 4.11+. Does XDP
>>> need any specific kernel configuration enabled? clang and LLVM
>>> versions are as following:
>>>
>>> clang --version
>>> clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)
>>> Target: x86_64-pc-linux-gnu
>>>
>>> llc --version
>>> LLVM (http://llvm.org/):
>>>   LLVM version 3.8.0
>>>
>>>   Optimized build.
>>>   Built Jul  9 2016 (11:22:59).
>>>   Default target: x86_64-pc-linux-gnu
>>>   Host CPU: haswell
>>>
>>>   Registered Targets:
>>>     aarch64    - AArch64 (little endian)
>>>     aarch64_be - AArch64 (big endian)
>>>     amdgcn     - AMD GCN GPUs
>>>     arm        - ARM
>>>     arm64      - ARM64 (little endian)
>>>     armeb      - ARM (big endian)
>>>     bpf        - BPF (host endian)
>>>     bpfeb      - BPF (big endian)
>>>     bpfel      - BPF (little endian)
>>>     cpp        - C++ backend
>>>     hexagon    - Hexagon
>>>     mips       - Mips
>>>     mips64     - Mips64 [experimental]
>>>     mips64el   - Mips64el [experimental]
>>>     mipsel     - Mipsel
>>>     msp430     - MSP430 [experimental]
>>>     nvptx      - NVIDIA PTX 32-bit
>>>     nvptx64    - NVIDIA PTX 64-bit
>>>     ppc32      - PowerPC 32
>>>     ppc64      - PowerPC 64
>>>     ppc64le    - PowerPC 64 LE
>>>     r600       - AMD GPUs HD2XXX-HD6XXX
>>>     sparc      - Sparc
>>>     sparcel    - Sparc LE
>>>     sparcv9    - Sparc V9
>>>     systemz    - SystemZ
>>>     thumb      - Thumb
>>>     thumbeb    - Thumb (big endian)
>>>     x86        - 32-bit X86: Pentium-Pro and above
>>>     x86-64     - 64-bit X86: EM64T and AMD64
>>>     xcore      - XCore
>>>
>>> Many thanks
>>> Tamim
>
> Thanks
> Tamim



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

  Powered by Linux