[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2c1f16fe-df92-08bc-e24f-a95edb2eadd0@intel.com>
Date: Thu, 14 Sep 2023 18:18:40 +0200
From: Alexander Lobakin <aleksander.lobakin@...el.com>
To: Larysa Zaremba <larysa.zaremba@...el.com>
CC: <bpf@...r.kernel.org>, <ast@...nel.org>, <daniel@...earbox.net>,
<andrii@...nel.org>, <martin.lau@...ux.dev>, <song@...nel.org>, <yhs@...com>,
<john.fastabend@...il.com>, <kpsingh@...nel.org>, <sdf@...gle.com>,
<haoluo@...gle.com>, <jolsa@...nel.org>, David Ahern <dsahern@...il.com>,
Jakub Kicinski <kuba@...nel.org>, Willem de Bruijn <willemb@...gle.com>,
Jesper Dangaard Brouer <brouer@...hat.com>, Anatoly Burakov
<anatoly.burakov@...el.com>, Alexander Lobakin <alexandr.lobakin@...el.com>,
Magnus Karlsson <magnus.karlsson@...il.com>, Maryam Tahhan
<mtahhan@...hat.com>, <xdp-hints@...-project.net>, <netdev@...r.kernel.org>,
Willem de Bruijn <willemdebruijn.kernel@...il.com>, Alexei Starovoitov
<alexei.starovoitov@...il.com>, Simon Horman <simon.horman@...igine.com>,
Tariq Toukan <tariqt@...lanox.com>, Saeed Mahameed <saeedm@...lanox.com>
Subject: Re: [RFC bpf-next 09/23] xdp: Add VLAN tag hint
From: Larysa Zaremba <larysa.zaremba@...el.com>
Date: Thu, 24 Aug 2023 21:26:48 +0200
> Implement functionality that enables drivers to expose VLAN tag
> to XDP code.
I'd leave a couple more words here. Mention that it exports both tag and
protocol, for example. That TCI is host-Endian and proto is BE (just
like how skb stores them and it's fine).
>
> Signed-off-by: Larysa Zaremba <larysa.zaremba@...el.com>
> ---
> Documentation/networking/xdp-rx-metadata.rst | 8 ++++-
> include/net/xdp.h | 4 +++
> kernel/bpf/offload.c | 2 ++
> net/core/xdp.c | 34 ++++++++++++++++++++
> 4 files changed, 47 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/networking/xdp-rx-metadata.rst b/Documentation/networking/xdp-rx-metadata.rst
> index 25ce72af81c2..ea6dd79a21d3 100644
> --- a/Documentation/networking/xdp-rx-metadata.rst
> +++ b/Documentation/networking/xdp-rx-metadata.rst
> @@ -18,7 +18,13 @@ Currently, the following kfuncs are supported. In the future, as more
> metadata is supported, this set will grow:
>
> .. kernel-doc:: net/core/xdp.c
> - :identifiers: bpf_xdp_metadata_rx_timestamp bpf_xdp_metadata_rx_hash
> + :identifiers: bpf_xdp_metadata_rx_timestamp
> +
> +.. kernel-doc:: net/core/xdp.c
> + :identifiers: bpf_xdp_metadata_rx_hash
> +
> +.. kernel-doc:: net/core/xdp.c
> + :identifiers: bpf_xdp_metadata_rx_vlan_tag
>
> An XDP program can use these kfuncs to read the metadata into stack
> variables for its own consumption. Or, to pass the metadata on to other
> diff --git a/include/net/xdp.h b/include/net/xdp.h
> index 1e9870d5f025..8bb64fc76498 100644
> --- a/include/net/xdp.h
> +++ b/include/net/xdp.h
> @@ -388,6 +388,8 @@ void xdp_attachment_setup(struct xdp_attachment_info *info,
> bpf_xdp_metadata_rx_timestamp) \
> XDP_METADATA_KFUNC(XDP_METADATA_KFUNC_RX_HASH, \
> bpf_xdp_metadata_rx_hash) \
> + XDP_METADATA_KFUNC(XDP_METADATA_KFUNC_RX_VLAN_TAG, \
> + bpf_xdp_metadata_rx_vlan_tag) \
>
> enum {
> #define XDP_METADATA_KFUNC(name, _) name,
> @@ -449,6 +451,8 @@ struct xdp_metadata_ops {
> int (*xmo_rx_timestamp)(const struct xdp_md *ctx, u64 *timestamp);
> int (*xmo_rx_hash)(const struct xdp_md *ctx, u32 *hash,
> enum xdp_rss_hash_type *rss_type);
> + int (*xmo_rx_vlan_tag)(const struct xdp_md *ctx, u16 *vlan_tci,
> + __be16 *vlan_proto);
Was "TCI first, proto second" aligned with something or I can ask "why
not proto first, TCI second"?
> };
>
> #ifdef CONFIG_NET
[...]
Thanks,
Olek
Powered by blists - more mailing lists