All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Borkmann <daniel@iogearbox.net>
To: "MD I. Islam" <tamim@csebuet.org>
Cc: Y Song <ys114321@gmail.com>, xdp-newbies@vger.kernel.org
Subject: Re: Cannot load eBPF program as XDP
Date: Wed, 28 Jun 2017 11:04:50 +0200	[thread overview]
Message-ID: <59537132.2080603@iogearbox.net> (raw)
In-Reply-To: <CAM7NYTi=j4ZiPEk4c9CH9GqqLgynyLRsjdPgVd=TPM3QCUb_yw@mail.gmail.com>

On 06/28/2017 04:32 AM, MD I. Islam wrote:
> On Tue, Jun 27, 2017 at 10:05 PM, Y Song <ys114321@gmail.com> 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!

This one is harmless, just telling you that the native bpf_elf_map
from iproute2 is different than the one you're loading, so it fixes
up the remaining 8 bytes automatically.

> RTNETLINK answers: Operation not supported

This one seems likely that the driver you're trying to attach this to
does not have XDP support. What's the driver you're using?

> Could you please advise me what is wrong here?
>
>> On Tue, Jun 27, 2017 at 7:00 PM, MD I. Islam <tamim@csebuet.org> 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
>

  parent reply	other threads:[~2017-06-28  9:04 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-28  2:00 Cannot load eBPF program as XDP MD I. Islam
2017-06-28  2:05 ` Y Song
2017-06-28  2:32   ` MD I. Islam
2017-06-28  6:58     ` Y Song
2017-06-28  9:04     ` Daniel Borkmann [this message]
2017-06-28 22:40       ` MD I. Islam
2017-06-29  0:19         ` Daniel Borkmann
2017-06-29 17:42           ` Jesper Dangaard Brouer
2017-06-28 20:26     ` Jesper Dangaard Brouer
2017-06-29  0:09       ` MD I. Islam

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=59537132.2080603@iogearbox.net \
    --to=daniel@iogearbox.net \
    --cc=tamim@csebuet.org \
    --cc=xdp-newbies@vger.kernel.org \
    --cc=ys114321@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.