Re: XDP seeking input from NIC hardware vendors

Jakub Kicinski

On Thu, 7 Jul 2016 15:18:11 +0000, Fastabend, John R wrote:
The other interesting thing would be to do more than just packet
steering but actually run a more complete XDP program. Netronome
supports this right. The question I have though is this a stacked of
XDP programs one or more designated for hardware and some running in
software perhaps with some annotation in the program so the hardware
JIT knows where to place programs or do we expect the JIT itself to
try and decide what is best to offload. I think the easiest to start
with is to annotate the programs.

Also as far as I know a lot of hardware can stick extra data to the
front or end of a packet so you could push metadata calculated by the
program here in a generic way without having to extend XDP defined
metadata structures. Another option is to DMA the metadata to a
specified address. With this metadata the consumer/producer XDP
programs have to agree on the format but no one else.

At the XDP summit we were discussing pipe-lining XDP programs in
general, with different stages of the pipeline potentially using
specific hardware capabilities or even being directly mappable on
fixed HW functions.

Designating parsing as one of specialized blocks makes sense in a long
run, probably at the first stage with recirculation possible. We also
have some parsing HW we could utilize at some point. However, I'm
worried that it's too early to impose constraints and APIs. I agree
that we should first set a standard way to pass metadata across tail
calls to facilitate any form of pipe lining, regardless of which parts
of pipeline HW is able to offload.

Join to automatically receive all group messages.