mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-07 11:33:58 -04:00
net/mlx5e: Add helper function to update IPSec default destination
The default destination of IPSec steering rules for MPV mode will be updated when the master device is brought up or down. Move the common code into the helper function. It’s convenient to update destinations in later patches. Signed-off-by: Jianbo Liu <jianbol@nvidia.com> Reviewed-by: Leon Romanovsky <leonro@nvidia.com> Reviewed-by: Patrisious Haddad <phaddad@nvidia.com> Signed-off-by: Tariq Toukan <tariqt@nvidia.com> Link: https://patch.msgid.link/20250220213959.504304-2-tariqt@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
a3ad653c91
commit
3400ae49cd
@@ -493,6 +493,14 @@ static int ipsec_miss_create(struct mlx5_core_dev *mdev,
|
||||
return err;
|
||||
}
|
||||
|
||||
static void ipsec_rx_update_default_dest(struct mlx5e_ipsec_rx *rx,
|
||||
struct mlx5_flow_destination *old_dest,
|
||||
struct mlx5_flow_destination *new_dest)
|
||||
{
|
||||
mlx5_modify_rule_destination(rx->status.rule, new_dest, old_dest);
|
||||
mlx5_modify_rule_destination(rx->sa.rule, new_dest, old_dest);
|
||||
}
|
||||
|
||||
static void handle_ipsec_rx_bringup(struct mlx5e_ipsec *ipsec, u32 family)
|
||||
{
|
||||
struct mlx5e_ipsec_rx *rx = ipsec_rx(ipsec, family, XFRM_DEV_OFFLOAD_PACKET);
|
||||
@@ -507,8 +515,7 @@ static void handle_ipsec_rx_bringup(struct mlx5e_ipsec *ipsec, u32 family)
|
||||
|
||||
new_dest.ft = mlx5_ipsec_fs_roce_ft_get(ipsec->roce, family);
|
||||
new_dest.type = MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE;
|
||||
mlx5_modify_rule_destination(rx->status.rule, &new_dest, &old_dest);
|
||||
mlx5_modify_rule_destination(rx->sa.rule, &new_dest, &old_dest);
|
||||
ipsec_rx_update_default_dest(rx, &old_dest, &new_dest);
|
||||
}
|
||||
|
||||
static void handle_ipsec_rx_cleanup(struct mlx5e_ipsec *ipsec, u32 family)
|
||||
@@ -520,8 +527,7 @@ static void handle_ipsec_rx_cleanup(struct mlx5e_ipsec *ipsec, u32 family)
|
||||
old_dest.type = MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE;
|
||||
new_dest = mlx5_ttc_get_default_dest(mlx5e_fs_get_ttc(ipsec->fs, false),
|
||||
family2tt(family));
|
||||
mlx5_modify_rule_destination(rx->sa.rule, &new_dest, &old_dest);
|
||||
mlx5_modify_rule_destination(rx->status.rule, &new_dest, &old_dest);
|
||||
ipsec_rx_update_default_dest(rx, &old_dest, &new_dest);
|
||||
|
||||
mlx5_ipsec_fs_roce_rx_destroy(ipsec->roce, family, ipsec->mdev);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user