From: Tom Herbert <tom@herbertland.com>
To: xdp-hints@xdp-project.net
Subject: Challenges of XDP hints to overcome
Date: Fri, 28 May 2021 07:52:08 -0700 [thread overview]
Message-ID: <CALx6S34gZcvKF8NPu9QqYkChy_4V1z-9+6yf8-V-sm1sqK5ObA@mail.gmail.com> (raw)
I believe there are some major challenges to overcome if XDP hints is
to become ubiquitous:
1. The amount of meta information that can be practically conveyed per
packet over the PCIe bus is limited. For instance there is no
practical way to convey a complete set of metadata for a packet like
we get on output from flow dissector with killing PCIe bandwidth. It
seems like the best we can do is maybe convey a few items such as L3,
L4 offsets. This roadblock is going to be hard to overcome without an
architectural change (CXL for instance).
2. The stack needs to be able to make use of the hints. For instance,
in Transport XDP, XDP layer could conceptually perform all the
stateless processing for a TCP/IP packet and jump into TCP code at the
point where connection lookup is done. This is feasible to do in
software XDP, presumably some explicit program like in eBPF would need
to be offloaded to make it work on hardware
3. Device is a black box to the stack. We really don't want to get
into another situation like protocol specific checksum offloads where
the device is doing something that may or may not be doing in a way
the stack thinks it's appropriate. We need full transparency as to
what the device is doing. IMO, a requirement of XDP hints should be
that the device MUST be user programmable and the program for parsing
and metadata extraction is under control and visible to the stack.
Effectively, this extends the stack into the device (Split Plane
Acceleration). More specifically, to eliminate any possibility of
ambiguity and achieve "write once, run anywhere", we want the *exact*
same program to be run by the stack in software and then is offloaded
to the hardware-- this is the model of the PANDA Parser.
Tom
reply other threads:[~2021-05-28 14:52 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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
List information: https://lists.xdp-project.net/postorius/lists/xdp-hints.xdp-project.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CALx6S34gZcvKF8NPu9QqYkChy_4V1z-9+6yf8-V-sm1sqK5ObA@mail.gmail.com \
--to=tom@herbertland.com \
--cc=xdp-hints@xdp-project.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox