diff options
author | Maciej Fijalkowski <maciej.fijalkowski@intel.com> | 2023-07-19 15:24:08 +0200 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2023-07-19 18:56:49 +0200 |
commit | 24ea50127ecf0efe819c1f6230add27abc6ca9d9 (patch) | |
tree | ef1c4492c553100e68df539ec534eca8ac0f85c5 /crypto/aegis-neon.h | |
parent | xsk: add new netlink attribute dedicated for ZC max frags (diff) | |
download | linux-24ea50127ecf0efe819c1f6230add27abc6ca9d9.tar.xz linux-24ea50127ecf0efe819c1f6230add27abc6ca9d9.zip |
xsk: support mbuf on ZC RX
Given that skb_shared_info relies on skb_frag_t, in order to support
xskb chaining, introduce xdp_buff_xsk::xskb_list_node and
xsk_buff_pool::xskb_list.
This is needed so ZC drivers can add frags as xskb nodes which will make
it possible to handle it both when producing AF_XDP Rx descriptors as
well as freeing/recycling all the frags that a single frame carries.
Speaking of latter, update xsk_buff_free() to take care of list nodes.
For the former (adding as frags), introduce xsk_buff_add_frag() for ZC
drivers usage that is going to be used to add a frag to xskb list from
pool.
xsk_buff_get_frag() will be utilized by XDP_TX and, on contrary, will
return xdp_buff.
One of the previous patches added a wrapper for ZC Rx so implement xskb
list walk and production of Rx descriptors there.
On bind() path, bail out if socket wants to use ZC multi-buffer but
underlying netdev does not support it.
Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Link: https://lore.kernel.org/r/20230719132421.584801-12-maciej.fijalkowski@intel.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'crypto/aegis-neon.h')
0 files changed, 0 insertions, 0 deletions