Re: XDP requirements on the NIC

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

 



From: Florian Fainelli <f.fainelli@xxxxxxxxx>
Date: Sun, 9 Apr 2017 19:05:39 -0700

> In order for a NIC and its driver to support XDP, it sounds like we need:
> 
> - page-based RX

Not exactly.

> - TX multiqueue support

Also, not really required.

What you need to be able to do is to provide enough space in each
RX buffer for:

1) a full size frame
2) 256 bytes (XDP_PACKET_HEADROOM) of headroom

This is XDP's main set of requirements, a linear buffer and enough
room to push XDP_PACKET_HEADROOM's worth of headers.

Then if you want to be able to easily wrap the RX packet into an SKB
for XDP_PASS, you need to have enough tailroom for skb_shared_info()
which you basically give to something like build_skb().

If you look at __build_skb() it's comment states "Caller provides
space holding head and skb_shared_info".

For XDP_TX you just have to be able to queue up a raw skb'less packet
into your transmit queue.  TX multiqueue is not required for this to
work.



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

  Powered by Linux