Commit d7ec2b76 authored by Leon Romanovsky's avatar Leon Romanovsky Committed by Steffen Klassert

net/mlx5e: Group IPsec miss handles into separate struct

Move miss handles into dedicated struct, so we can reuse it in next
patch when creating IPsec policy flow table.
Reviewed-by: default avatarRaed Salem <raeds@nvidia.com>
Reviewed-by: default avatarSaeed Mahameed <saeedm@nvidia.com>
Signed-off-by: default avatarLeon Romanovsky <leonro@nvidia.com>
Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
parent 27ebe531
...@@ -16,10 +16,14 @@ struct mlx5e_ipsec_ft { ...@@ -16,10 +16,14 @@ struct mlx5e_ipsec_ft {
u32 refcnt; u32 refcnt;
}; };
struct mlx5e_ipsec_miss {
struct mlx5_flow_group *group;
struct mlx5_flow_handle *rule;
};
struct mlx5e_ipsec_rx { struct mlx5e_ipsec_rx {
struct mlx5e_ipsec_ft ft; struct mlx5e_ipsec_ft ft;
struct mlx5_flow_group *miss_group; struct mlx5e_ipsec_miss sa;
struct mlx5_flow_handle *miss_rule;
struct mlx5_flow_destination default_dest; struct mlx5_flow_destination default_dest;
struct mlx5e_ipsec_rule status; struct mlx5e_ipsec_rule status;
}; };
...@@ -135,18 +139,18 @@ static int rx_fs_create(struct mlx5_core_dev *mdev, struct mlx5e_ipsec_rx *rx) ...@@ -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); mlx5_core_err(mdev, "fail to create ipsec rx miss_group err=%d\n", err);
goto out; goto out;
} }
rx->miss_group = miss_group; rx->sa.group = miss_group;
/* Create miss rule */ /* Create miss rule */
miss_rule = miss_rule =
mlx5_add_flow_rules(ft, spec, &flow_act, &rx->default_dest, 1); mlx5_add_flow_rules(ft, spec, &flow_act, &rx->default_dest, 1);
if (IS_ERR(miss_rule)) { if (IS_ERR(miss_rule)) {
mlx5_destroy_flow_group(rx->miss_group); mlx5_destroy_flow_group(rx->sa.group);
err = PTR_ERR(miss_rule); err = PTR_ERR(miss_rule);
mlx5_core_err(mdev, "fail to create ipsec rx miss_rule err=%d\n", err); mlx5_core_err(mdev, "fail to create ipsec rx miss_rule err=%d\n", err);
goto out; goto out;
} }
rx->miss_rule = miss_rule; rx->sa.rule = miss_rule;
out: out:
kvfree(flow_group_in); kvfree(flow_group_in);
kvfree(spec); kvfree(spec);
...@@ -155,8 +159,8 @@ static int rx_fs_create(struct mlx5_core_dev *mdev, struct mlx5e_ipsec_rx *rx) ...@@ -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) static void rx_destroy(struct mlx5_core_dev *mdev, struct mlx5e_ipsec_rx *rx)
{ {
mlx5_del_flow_rules(rx->miss_rule); mlx5_del_flow_rules(rx->sa.rule);
mlx5_destroy_flow_group(rx->miss_group); mlx5_destroy_flow_group(rx->sa.group);
mlx5_destroy_flow_table(rx->ft.sa); mlx5_destroy_flow_table(rx->ft.sa);
mlx5_del_flow_rules(rx->status.rule); mlx5_del_flow_rules(rx->status.rule);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment