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.