mirror of
https://github.com/torvalds/linux.git
synced 2026-05-22 06:01:53 +02:00
mlx5: implement VLAN tag XDP hint
Implement the newly added .xmo_rx_vlan_tag() hint function. Reviewed-by: Tariq Toukan <tariqt@nvidia.com> Signed-off-by: Larysa Zaremba <larysa.zaremba@intel.com> Acked-by: Jesper Dangaard Brouer <hawk@kernel.org> Link: https://lore.kernel.org/r/20231205210847.28460-15-larysa.zaremba@intel.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
537fec0733
commit
7978bad4b6
|
|
@ -256,9 +256,24 @@ static int mlx5e_xdp_rx_hash(const struct xdp_md *ctx, u32 *hash,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int mlx5e_xdp_rx_vlan_tag(const struct xdp_md *ctx, __be16 *vlan_proto,
|
||||
u16 *vlan_tci)
|
||||
{
|
||||
const struct mlx5e_xdp_buff *_ctx = (void *)ctx;
|
||||
const struct mlx5_cqe64 *cqe = _ctx->cqe;
|
||||
|
||||
if (!cqe_has_vlan(cqe))
|
||||
return -ENODATA;
|
||||
|
||||
*vlan_proto = htons(ETH_P_8021Q);
|
||||
*vlan_tci = be16_to_cpu(cqe->vlan_info);
|
||||
return 0;
|
||||
}
|
||||
|
||||
const struct xdp_metadata_ops mlx5e_xdp_metadata_ops = {
|
||||
.xmo_rx_timestamp = mlx5e_xdp_rx_timestamp,
|
||||
.xmo_rx_hash = mlx5e_xdp_rx_hash,
|
||||
.xmo_rx_vlan_tag = mlx5e_xdp_rx_vlan_tag,
|
||||
};
|
||||
|
||||
struct mlx5e_xsk_tx_complete {
|
||||
|
|
|
|||
|
|
@ -918,7 +918,7 @@ static inline u8 get_cqe_tls_offload(struct mlx5_cqe64 *cqe)
|
|||
return (cqe->tls_outer_l3_tunneled >> 3) & 0x3;
|
||||
}
|
||||
|
||||
static inline bool cqe_has_vlan(struct mlx5_cqe64 *cqe)
|
||||
static inline bool cqe_has_vlan(const struct mlx5_cqe64 *cqe)
|
||||
{
|
||||
return cqe->l4_l3_hdr_type & 0x1;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user