mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
Merge tag 'mlx5-next-09-11' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux
Tariq Toukan says: ==================== mlx5-next updates 2025-09-17 This series by Carolina contains cleanups significantly touching shared mlx5 net and rdma headers. * tag 'mlx5-next-09-11' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux: net/mlx5e: Prevent WQE metadata conflicts between timestamping and offloads net/mlx5: Refactor MACsec WQE metadata shifts net/mlx5: Remove VLAN insertion fields from WQE Ether segment ==================== Link: https://patch.msgid.link/1757574619-604874-1-git-send-email-tariqt@nvidia.com Link: https://patch.msgid.link/1758104780-642426-1-git-send-email-tariqt@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
38c5b9c38b
|
|
@ -1676,7 +1676,7 @@ void mlx5e_macsec_tx_build_eseg(struct mlx5e_macsec *macsec,
|
|||
if (!fs_id)
|
||||
return;
|
||||
|
||||
eseg->flow_table_metadata = cpu_to_be32(MLX5_ETH_WQE_FT_META_MACSEC | fs_id << 2);
|
||||
eseg->flow_table_metadata = cpu_to_be32(MLX5_MACSEC_TX_METADATA(fs_id));
|
||||
}
|
||||
|
||||
void mlx5e_macsec_offload_handle_rx_skb(struct net_device *netdev,
|
||||
|
|
|
|||
|
|
@ -659,7 +659,7 @@ static void mlx5e_cqe_ts_id_eseg(struct mlx5e_ptpsq *ptpsq, struct sk_buff *skb,
|
|||
struct mlx5_wqe_eth_seg *eseg)
|
||||
{
|
||||
if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP))
|
||||
eseg->flow_table_metadata =
|
||||
eseg->flow_table_metadata |=
|
||||
cpu_to_be32(mlx5e_ptp_metadata_fifo_peek(&ptpsq->metadata_freelist));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -45,11 +45,7 @@
|
|||
#define MLX5_SECTAG_HEADER_SIZE_WITHOUT_SCI 0x8
|
||||
#define MLX5_SECTAG_HEADER_SIZE_WITH_SCI (MLX5_SECTAG_HEADER_SIZE_WITHOUT_SCI + MACSEC_SCI_LEN)
|
||||
|
||||
/* MACsec RX flow steering */
|
||||
#define MLX5_ETH_WQE_FT_META_MACSEC_MASK 0x3E
|
||||
|
||||
/* MACsec fs_id handling for steering */
|
||||
#define macsec_fs_set_tx_fs_id(fs_id) (MLX5_ETH_WQE_FT_META_MACSEC | (fs_id) << 2)
|
||||
#define macsec_fs_set_rx_fs_id(fs_id) ((fs_id) | BIT(30))
|
||||
|
||||
struct mlx5_sectag_header {
|
||||
|
|
@ -597,7 +593,7 @@ static int macsec_fs_tx_setup_fte(struct mlx5_macsec_fs *macsec_fs,
|
|||
MLX5_SET(fte_match_param, spec->match_criteria, misc_parameters_2.metadata_reg_a,
|
||||
MLX5_ETH_WQE_FT_META_MACSEC_MASK);
|
||||
MLX5_SET(fte_match_param, spec->match_value, misc_parameters_2.metadata_reg_a,
|
||||
macsec_fs_set_tx_fs_id(id));
|
||||
MLX5_MACSEC_TX_METADATA(id));
|
||||
|
||||
*fs_id = id;
|
||||
flow_act->crypto.type = MLX5_FLOW_CONTEXT_ENCRYPT_DECRYPT_TYPE_MACSEC;
|
||||
|
|
@ -2219,9 +2215,11 @@ static int mlx5_macsec_fs_add_roce_rule_tx(struct mlx5_macsec_fs *macsec_fs, u32
|
|||
|
||||
MLX5_SET(set_action_in, action, action_type, MLX5_ACTION_TYPE_SET);
|
||||
MLX5_SET(set_action_in, action, field, MLX5_ACTION_IN_FIELD_METADATA_REG_A);
|
||||
MLX5_SET(set_action_in, action, data, macsec_fs_set_tx_fs_id(fs_id));
|
||||
MLX5_SET(set_action_in, action, offset, 0);
|
||||
MLX5_SET(set_action_in, action, length, 32);
|
||||
MLX5_SET(set_action_in, action, data,
|
||||
mlx5_macsec_fs_set_tx_fs_id(fs_id));
|
||||
MLX5_SET(set_action_in, action, offset,
|
||||
MLX5_ETH_WQE_FT_META_MACSEC_SHIFT);
|
||||
MLX5_SET(set_action_in, action, length, 8);
|
||||
|
||||
modify_hdr = mlx5_modify_header_alloc(mdev, MLX5_FLOW_NAMESPACE_RDMA_TX_MACSEC,
|
||||
1, action);
|
||||
|
|
|
|||
|
|
@ -12,6 +12,21 @@
|
|||
#define MLX5_MACSEC_METADATA_MARKER(metadata) ((((metadata) >> 30) & 0x3) == 0x1)
|
||||
#define MLX5_MACSEC_RX_METADAT_HANDLE(metadata) ((metadata) & MLX5_MACSEC_RX_FS_ID_MASK)
|
||||
|
||||
/* MACsec TX flow steering */
|
||||
#define MLX5_ETH_WQE_FT_META_MACSEC_MASK \
|
||||
(MLX5_ETH_WQE_FT_META_MACSEC | MLX5_ETH_WQE_FT_META_MACSEC_FS_ID_MASK)
|
||||
#define MLX5_ETH_WQE_FT_META_MACSEC_SHIFT MLX5_ETH_WQE_FT_META_SHIFT
|
||||
|
||||
/* MACsec fs_id handling for steering */
|
||||
#define mlx5_macsec_fs_set_tx_fs_id(fs_id) \
|
||||
(((MLX5_ETH_WQE_FT_META_MACSEC) >> MLX5_ETH_WQE_FT_META_MACSEC_SHIFT) \
|
||||
| ((fs_id) << 2))
|
||||
|
||||
#define MLX5_MACSEC_TX_METADATA(fs_id) \
|
||||
(mlx5_macsec_fs_set_tx_fs_id(fs_id) << \
|
||||
MLX5_ETH_WQE_FT_META_MACSEC_SHIFT)
|
||||
|
||||
/* MACsec fs_id uses 4 bits, supports up to 16 interfaces */
|
||||
#define MLX5_MACSEC_NUM_OF_SUPPORTED_INTERFACES 16
|
||||
|
||||
struct mlx5_macsec_fs;
|
||||
|
|
|
|||
|
|
@ -237,13 +237,11 @@ enum {
|
|||
};
|
||||
|
||||
enum {
|
||||
MLX5_ETH_WQE_SVLAN = 1 << 0,
|
||||
MLX5_ETH_WQE_TRAILER_HDR_OUTER_IP_ASSOC = 1 << 26,
|
||||
MLX5_ETH_WQE_TRAILER_HDR_OUTER_L4_ASSOC = 1 << 27,
|
||||
MLX5_ETH_WQE_TRAILER_HDR_INNER_IP_ASSOC = 3 << 26,
|
||||
MLX5_ETH_WQE_TRAILER_HDR_INNER_L4_ASSOC = 1 << 28,
|
||||
MLX5_ETH_WQE_INSERT_TRAILER = 1 << 30,
|
||||
MLX5_ETH_WQE_INSERT_VLAN = 1 << 15,
|
||||
};
|
||||
|
||||
enum {
|
||||
|
|
@ -253,9 +251,15 @@ enum {
|
|||
MLX5_ETH_WQE_SWP_OUTER_L4_UDP = 1 << 5,
|
||||
};
|
||||
|
||||
/* Metadata bits 0-7 are used by timestamping */
|
||||
/* Base shift for metadata bits used by IPsec and MACsec */
|
||||
#define MLX5_ETH_WQE_FT_META_SHIFT 8
|
||||
|
||||
enum {
|
||||
MLX5_ETH_WQE_FT_META_IPSEC = BIT(0),
|
||||
MLX5_ETH_WQE_FT_META_MACSEC = BIT(1),
|
||||
MLX5_ETH_WQE_FT_META_IPSEC = BIT(0) << MLX5_ETH_WQE_FT_META_SHIFT,
|
||||
MLX5_ETH_WQE_FT_META_MACSEC = BIT(1) << MLX5_ETH_WQE_FT_META_SHIFT,
|
||||
MLX5_ETH_WQE_FT_META_MACSEC_FS_ID_MASK =
|
||||
GENMASK(5, 2) << MLX5_ETH_WQE_FT_META_SHIFT,
|
||||
};
|
||||
|
||||
struct mlx5_wqe_eth_seg {
|
||||
|
|
@ -275,10 +279,6 @@ struct mlx5_wqe_eth_seg {
|
|||
DECLARE_FLEX_ARRAY(u8, data);
|
||||
};
|
||||
} inline_hdr;
|
||||
struct {
|
||||
__be16 type;
|
||||
__be16 vlan_tci;
|
||||
} insert;
|
||||
__be32 trailer;
|
||||
};
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user