]> www.infradead.org Git - users/hch/misc.git/commit
net: tun: Enable transfer of XDP metadata to skb
authorMarcus Wichelmann <marcus.wichelmann@hetzner-cloud.de>
Wed, 5 Mar 2025 21:34:34 +0000 (21:34 +0000)
committerMartin KaFai Lau <martin.lau@kernel.org>
Thu, 6 Mar 2025 20:31:08 +0000 (12:31 -0800)
commit0ca23a4d64ce6db0ec1e1f66559c115eb100e426
tree0d48b41d06be8e7178b87e25ad78ca10f2465ff6
parentc2315ebb0588f58a256d8411ac076e7350d830b2
net: tun: Enable transfer of XDP metadata to skb

When the XDP metadata area was used, it is expected that the same
metadata can also be accessed from TC, as can be read in the description
of the bpf_xdp_adjust_meta helper function. In the tun driver, this was
not yet implemented.

To make this work, the skb that is being built on XDP_PASS should know
of the current size of the metadata area. This is ensured by adding
calls to skb_metadata_set. For the tun_xdp_one code path, an additional
check is necessary to handle the case where the externally initialized
xdp_buff has no metadata support (xdp->data_meta == xdp->data + 1).

More information about this feature can be found in the commit message
of commit de8f3a83b0a0 ("bpf: add meta pointer for direct access").

Signed-off-by: Marcus Wichelmann <marcus.wichelmann@hetzner-cloud.de>
Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Link: https://patch.msgid.link/20250305213438.3863922-3-marcus.wichelmann@hetzner-cloud.de
drivers/net/tun.c