Skip to content

Commit

Permalink
net/mlx5e: Group IPsec miss handles into separate struct
Browse files Browse the repository at this point in the history
Move miss handles into dedicated struct, so we can reuse it in next
patch when creating IPsec policy flow table.

Reviewed-by: Raed Salem <raeds@nvidia.com>
Reviewed-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
  • Loading branch information
Leon Romanovsky authored and Steffen Klassert committed Dec 6, 2022
1 parent 27ebe53 commit d7ec2b7
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec_fs.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,14 @@ struct mlx5e_ipsec_ft {
u32 refcnt;
};

struct mlx5e_ipsec_miss {
struct mlx5_flow_group *group;
struct mlx5_flow_handle *rule;
};

struct mlx5e_ipsec_rx {
struct mlx5e_ipsec_ft ft;
struct mlx5_flow_group *miss_group;
struct mlx5_flow_handle *miss_rule;
struct mlx5e_ipsec_miss sa;
struct mlx5_flow_destination default_dest;
struct mlx5e_ipsec_rule status;
};
Expand Down Expand Up @@ -135,18 +139,18 @@ static int rx_fs_create(struct mlx5_core_dev *mdev, struct mlx5e_ipsec_rx *rx)
mlx5_core_err(mdev, "fail to create ipsec rx miss_group err=%d\n", err);
goto out;
}
rx->miss_group = miss_group;
rx->sa.group = miss_group;

/* Create miss rule */
miss_rule =
mlx5_add_flow_rules(ft, spec, &flow_act, &rx->default_dest, 1);
if (IS_ERR(miss_rule)) {
mlx5_destroy_flow_group(rx->miss_group);
mlx5_destroy_flow_group(rx->sa.group);
err = PTR_ERR(miss_rule);
mlx5_core_err(mdev, "fail to create ipsec rx miss_rule err=%d\n", err);
goto out;
}
rx->miss_rule = miss_rule;
rx->sa.rule = miss_rule;
out:
kvfree(flow_group_in);
kvfree(spec);
Expand All @@ -155,8 +159,8 @@ static int rx_fs_create(struct mlx5_core_dev *mdev, struct mlx5e_ipsec_rx *rx)

static void rx_destroy(struct mlx5_core_dev *mdev, struct mlx5e_ipsec_rx *rx)
{
mlx5_del_flow_rules(rx->miss_rule);
mlx5_destroy_flow_group(rx->miss_group);
mlx5_del_flow_rules(rx->sa.rule);
mlx5_destroy_flow_group(rx->sa.group);
mlx5_destroy_flow_table(rx->ft.sa);

mlx5_del_flow_rules(rx->status.rule);
Expand Down

0 comments on commit d7ec2b7

Please sign in to comment.