net/mlx5: Add core support for vlan push/pop steering action
Newer NICs (ConnectX-5 and onward) can apply vlan pop or push as an action taking place during flow steering. Add the core bits for that. Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Reviewed-by: Mark Bloch <markb@mellanox.com> Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
This commit is contained in:

committed by
Saeed Mahameed

parent
aa24670ef6
commit
0c06897a9a
@@ -142,6 +142,12 @@ struct mlx5_flow_group *
|
||||
mlx5_create_flow_group(struct mlx5_flow_table *ft, u32 *in);
|
||||
void mlx5_destroy_flow_group(struct mlx5_flow_group *fg);
|
||||
|
||||
struct mlx5_fs_vlan {
|
||||
u16 ethtype;
|
||||
u16 vid;
|
||||
u8 prio;
|
||||
};
|
||||
|
||||
struct mlx5_flow_act {
|
||||
u32 action;
|
||||
bool has_flow_tag;
|
||||
@@ -149,6 +155,7 @@ struct mlx5_flow_act {
|
||||
u32 encap_id;
|
||||
u32 modify_id;
|
||||
uintptr_t esp_id;
|
||||
struct mlx5_fs_vlan vlan;
|
||||
};
|
||||
|
||||
#define MLX5_DECLARE_FLOW_ACT(name) \
|
||||
|
@@ -314,7 +314,10 @@ struct mlx5_ifc_flow_table_prop_layout_bits {
|
||||
u8 flow_table_modify[0x1];
|
||||
u8 encap[0x1];
|
||||
u8 decap[0x1];
|
||||
u8 reserved_at_9[0x17];
|
||||
u8 reserved_at_9[0x1];
|
||||
u8 pop_vlan[0x1];
|
||||
u8 push_vlan[0x1];
|
||||
u8 reserved_at_c[0x14];
|
||||
|
||||
u8 reserved_at_20[0x2];
|
||||
u8 log_max_ft_size[0x6];
|
||||
@@ -2311,10 +2314,19 @@ enum {
|
||||
MLX5_FLOW_CONTEXT_ACTION_ENCAP = 0x10,
|
||||
MLX5_FLOW_CONTEXT_ACTION_DECAP = 0x20,
|
||||
MLX5_FLOW_CONTEXT_ACTION_MOD_HDR = 0x40,
|
||||
MLX5_FLOW_CONTEXT_ACTION_VLAN_POP = 0x80,
|
||||
MLX5_FLOW_CONTEXT_ACTION_VLAN_PUSH = 0x100,
|
||||
};
|
||||
|
||||
struct mlx5_ifc_vlan_bits {
|
||||
u8 ethtype[0x10];
|
||||
u8 prio[0x3];
|
||||
u8 cfi[0x1];
|
||||
u8 vid[0xc];
|
||||
};
|
||||
|
||||
struct mlx5_ifc_flow_context_bits {
|
||||
u8 reserved_at_0[0x20];
|
||||
struct mlx5_ifc_vlan_bits push_vlan;
|
||||
|
||||
u8 group_id[0x20];
|
||||
|
||||
|
Reference in New Issue
Block a user