All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Borkmann <daniel@iogearbox.net>
To: tom.barbette@ulg.ac.be
Cc: xdp-newbies@vger.kernel.org
Subject: Re: XDP for Kernel by-pass?
Date: Thu, 13 Jul 2017 22:44:51 +0200	[thread overview]
Message-ID: <5967DBC3.5060509@iogearbox.net> (raw)
In-Reply-To: <1667638588.29757437.1499974457843.JavaMail.zimbra@ulg.ac.be>

On 07/13/2017 09:34 PM, tom.barbette@ulg.ac.be wrote:
> Hi all,
>
> Can XDP be used for "skbuff bypass"? Like a rx_handler but closer to the driver? I'm not very familiar with eBPF, could it be used to pass the kernel to any kernel module or userspace application?
>
> It looks to me that bpf_func in struct bpf_prog could be any function that we could use to deviate XDP and use it for that purpose. Correct?
>
> Kernel app like Click or OVS could benefit from that as they don't use most skbuff facilities.

You can do a lot of things with eBPF already e.g. take a look at the kernel
BPF sample code or BPF selftests e.g. test_l4lb.c, test_xdp.c, etc, or
projects like cilium that get compiled from C to BPF bytecode. BPF and XDP
is heavily tied together and part of the core kernel, so modular code/hooks
like third party kernel modules are not possible. Also f.e. wrt to user space
one of the use cases is that you don't need to cross boundaries in the first
place when you preprocess in XDP and e.g. apply policy to drop unrelated
packets early while remaining ones are forwarded to containers, etc. There's
wip to have an OVS data path in BPF/XDP. I currently don't find the slides,
but Quentin did a good coverage on it from the last workshop [1], so worth
to read up a bit on the topic.

   [1] https://qmonnet.github.io/whirl-offload/2017/03/03/iovisor-summit-summary/

> Thanks,
>
> Tom
>

  parent reply	other threads:[~2017-07-13 20:45 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-13 19:34 XDP for Kernel by-pass? tom.barbette
2017-07-13 20:40 ` David Miller
2017-07-13 20:44 ` Daniel Borkmann [this message]
2017-07-13 21:07   ` Joe Stringer
2017-07-14  8:46     ` tom.barbette
2017-07-14  9:44       ` Daniel Borkmann

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=5967DBC3.5060509@iogearbox.net \
    --to=daniel@iogearbox.net \
    --cc=tom.barbette@ulg.ac.be \
    --cc=xdp-newbies@vger.kernel.org \
    /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.