net/mlx5: DR, Split modify VLAN state to separate pop/push states
Split modify vlan state in the actions state machine to pop vlan and push vlan states. This enables using of pop/push vlan without restrictions (e.g. pop vlan on TX in STEv1). Signed-off-by: Muhammad Sammar <muhammads@nvidia.com> Signed-off-by: Alex Vesker <valex@nvidia.com> Signed-off-by: Yevgeny Kliteynik <kliteyn@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
This commit is contained in:
parent
0139145fb8
commit
f5e22be534
|
@ -18,7 +18,8 @@ enum dr_action_valid_state {
|
|||
DR_ACTION_STATE_ENCAP,
|
||||
DR_ACTION_STATE_DECAP,
|
||||
DR_ACTION_STATE_MODIFY_HDR,
|
||||
DR_ACTION_STATE_MODIFY_VLAN,
|
||||
DR_ACTION_STATE_POP_VLAN,
|
||||
DR_ACTION_STATE_PUSH_VLAN,
|
||||
DR_ACTION_STATE_NON_TERM,
|
||||
DR_ACTION_STATE_TERM,
|
||||
DR_ACTION_STATE_MAX,
|
||||
|
@ -41,7 +42,7 @@ next_action_state[DR_ACTION_DOMAIN_MAX][DR_ACTION_STATE_MAX][DR_ACTION_TYP_MAX]
|
|||
[DR_ACTION_TYP_INSERT_HDR] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_REMOVE_HDR] = DR_ACTION_STATE_DECAP,
|
||||
[DR_ACTION_TYP_MODIFY_HDR] = DR_ACTION_STATE_MODIFY_HDR,
|
||||
[DR_ACTION_TYP_POP_VLAN] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_POP_VLAN] = DR_ACTION_STATE_POP_VLAN,
|
||||
},
|
||||
[DR_ACTION_STATE_DECAP] = {
|
||||
[DR_ACTION_TYP_DROP] = DR_ACTION_STATE_TERM,
|
||||
|
@ -54,7 +55,7 @@ next_action_state[DR_ACTION_DOMAIN_MAX][DR_ACTION_STATE_MAX][DR_ACTION_TYP_MAX]
|
|||
[DR_ACTION_TYP_L2_TO_TNL_L3] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_INSERT_HDR] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_MODIFY_HDR] = DR_ACTION_STATE_MODIFY_HDR,
|
||||
[DR_ACTION_TYP_POP_VLAN] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_POP_VLAN] = DR_ACTION_STATE_POP_VLAN,
|
||||
},
|
||||
[DR_ACTION_STATE_ENCAP] = {
|
||||
[DR_ACTION_TYP_DROP] = DR_ACTION_STATE_TERM,
|
||||
|
@ -75,14 +76,14 @@ next_action_state[DR_ACTION_DOMAIN_MAX][DR_ACTION_STATE_MAX][DR_ACTION_TYP_MAX]
|
|||
[DR_ACTION_TYP_L2_TO_TNL_L3] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_INSERT_HDR] = DR_ACTION_STATE_ENCAP,
|
||||
},
|
||||
[DR_ACTION_STATE_MODIFY_VLAN] = {
|
||||
[DR_ACTION_STATE_POP_VLAN] = {
|
||||
[DR_ACTION_TYP_DROP] = DR_ACTION_STATE_TERM,
|
||||
[DR_ACTION_TYP_QP] = DR_ACTION_STATE_TERM,
|
||||
[DR_ACTION_TYP_FT] = DR_ACTION_STATE_TERM,
|
||||
[DR_ACTION_TYP_SAMPLER] = DR_ACTION_STATE_TERM,
|
||||
[DR_ACTION_TYP_TAG] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_CTR] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_POP_VLAN] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_TAG] = DR_ACTION_STATE_POP_VLAN,
|
||||
[DR_ACTION_TYP_CTR] = DR_ACTION_STATE_POP_VLAN,
|
||||
[DR_ACTION_TYP_POP_VLAN] = DR_ACTION_STATE_POP_VLAN,
|
||||
[DR_ACTION_TYP_MODIFY_HDR] = DR_ACTION_STATE_MODIFY_HDR,
|
||||
[DR_ACTION_TYP_L2_TO_TNL_L2] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_L2_TO_TNL_L3] = DR_ACTION_STATE_ENCAP,
|
||||
|
@ -102,7 +103,7 @@ next_action_state[DR_ACTION_DOMAIN_MAX][DR_ACTION_STATE_MAX][DR_ACTION_TYP_MAX]
|
|||
[DR_ACTION_TYP_INSERT_HDR] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_REMOVE_HDR] = DR_ACTION_STATE_DECAP,
|
||||
[DR_ACTION_TYP_MODIFY_HDR] = DR_ACTION_STATE_MODIFY_HDR,
|
||||
[DR_ACTION_TYP_POP_VLAN] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_POP_VLAN] = DR_ACTION_STATE_POP_VLAN,
|
||||
},
|
||||
[DR_ACTION_STATE_TERM] = {
|
||||
[DR_ACTION_TYP_CTR] = DR_ACTION_STATE_TERM,
|
||||
|
@ -119,7 +120,7 @@ next_action_state[DR_ACTION_DOMAIN_MAX][DR_ACTION_STATE_MAX][DR_ACTION_TYP_MAX]
|
|||
[DR_ACTION_TYP_INSERT_HDR] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_REMOVE_HDR] = DR_ACTION_STATE_DECAP,
|
||||
[DR_ACTION_TYP_MODIFY_HDR] = DR_ACTION_STATE_MODIFY_HDR,
|
||||
[DR_ACTION_TYP_PUSH_VLAN] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_PUSH_VLAN] = DR_ACTION_STATE_PUSH_VLAN,
|
||||
},
|
||||
[DR_ACTION_STATE_DECAP] = {
|
||||
[DR_ACTION_TYP_DROP] = DR_ACTION_STATE_TERM,
|
||||
|
@ -141,14 +142,14 @@ next_action_state[DR_ACTION_DOMAIN_MAX][DR_ACTION_STATE_MAX][DR_ACTION_TYP_MAX]
|
|||
[DR_ACTION_TYP_L2_TO_TNL_L2] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_L2_TO_TNL_L3] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_INSERT_HDR] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_PUSH_VLAN] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_PUSH_VLAN] = DR_ACTION_STATE_PUSH_VLAN,
|
||||
},
|
||||
[DR_ACTION_STATE_MODIFY_VLAN] = {
|
||||
[DR_ACTION_STATE_PUSH_VLAN] = {
|
||||
[DR_ACTION_TYP_DROP] = DR_ACTION_STATE_TERM,
|
||||
[DR_ACTION_TYP_FT] = DR_ACTION_STATE_TERM,
|
||||
[DR_ACTION_TYP_SAMPLER] = DR_ACTION_STATE_TERM,
|
||||
[DR_ACTION_TYP_CTR] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_PUSH_VLAN] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_CTR] = DR_ACTION_STATE_PUSH_VLAN,
|
||||
[DR_ACTION_TYP_PUSH_VLAN] = DR_ACTION_STATE_PUSH_VLAN,
|
||||
[DR_ACTION_TYP_L2_TO_TNL_L2] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_L2_TO_TNL_L3] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_INSERT_HDR] = DR_ACTION_STATE_ENCAP,
|
||||
|
@ -163,7 +164,7 @@ next_action_state[DR_ACTION_DOMAIN_MAX][DR_ACTION_STATE_MAX][DR_ACTION_TYP_MAX]
|
|||
[DR_ACTION_TYP_INSERT_HDR] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_REMOVE_HDR] = DR_ACTION_STATE_DECAP,
|
||||
[DR_ACTION_TYP_MODIFY_HDR] = DR_ACTION_STATE_MODIFY_HDR,
|
||||
[DR_ACTION_TYP_PUSH_VLAN] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_PUSH_VLAN] = DR_ACTION_STATE_PUSH_VLAN,
|
||||
},
|
||||
[DR_ACTION_STATE_TERM] = {
|
||||
[DR_ACTION_TYP_CTR] = DR_ACTION_STATE_TERM,
|
||||
|
@ -182,7 +183,7 @@ next_action_state[DR_ACTION_DOMAIN_MAX][DR_ACTION_STATE_MAX][DR_ACTION_TYP_MAX]
|
|||
[DR_ACTION_TYP_INSERT_HDR] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_REMOVE_HDR] = DR_ACTION_STATE_DECAP,
|
||||
[DR_ACTION_TYP_MODIFY_HDR] = DR_ACTION_STATE_MODIFY_HDR,
|
||||
[DR_ACTION_TYP_POP_VLAN] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_POP_VLAN] = DR_ACTION_STATE_POP_VLAN,
|
||||
[DR_ACTION_TYP_VPORT] = DR_ACTION_STATE_TERM,
|
||||
},
|
||||
[DR_ACTION_STATE_DECAP] = {
|
||||
|
@ -191,7 +192,7 @@ next_action_state[DR_ACTION_DOMAIN_MAX][DR_ACTION_STATE_MAX][DR_ACTION_TYP_MAX]
|
|||
[DR_ACTION_TYP_CTR] = DR_ACTION_STATE_DECAP,
|
||||
[DR_ACTION_TYP_SAMPLER] = DR_ACTION_STATE_TERM,
|
||||
[DR_ACTION_TYP_MODIFY_HDR] = DR_ACTION_STATE_MODIFY_HDR,
|
||||
[DR_ACTION_TYP_POP_VLAN] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_POP_VLAN] = DR_ACTION_STATE_POP_VLAN,
|
||||
[DR_ACTION_TYP_VPORT] = DR_ACTION_STATE_TERM,
|
||||
[DR_ACTION_TYP_L2_TO_TNL_L2] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_L2_TO_TNL_L3] = DR_ACTION_STATE_ENCAP,
|
||||
|
@ -215,12 +216,12 @@ next_action_state[DR_ACTION_DOMAIN_MAX][DR_ACTION_STATE_MAX][DR_ACTION_TYP_MAX]
|
|||
[DR_ACTION_TYP_L2_TO_TNL_L3] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_INSERT_HDR] = DR_ACTION_STATE_ENCAP,
|
||||
},
|
||||
[DR_ACTION_STATE_MODIFY_VLAN] = {
|
||||
[DR_ACTION_STATE_POP_VLAN] = {
|
||||
[DR_ACTION_TYP_DROP] = DR_ACTION_STATE_TERM,
|
||||
[DR_ACTION_TYP_FT] = DR_ACTION_STATE_TERM,
|
||||
[DR_ACTION_TYP_SAMPLER] = DR_ACTION_STATE_TERM,
|
||||
[DR_ACTION_TYP_POP_VLAN] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_CTR] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_POP_VLAN] = DR_ACTION_STATE_POP_VLAN,
|
||||
[DR_ACTION_TYP_CTR] = DR_ACTION_STATE_POP_VLAN,
|
||||
[DR_ACTION_TYP_VPORT] = DR_ACTION_STATE_TERM,
|
||||
[DR_ACTION_TYP_MODIFY_HDR] = DR_ACTION_STATE_MODIFY_HDR,
|
||||
[DR_ACTION_TYP_L2_TO_TNL_L2] = DR_ACTION_STATE_ENCAP,
|
||||
|
@ -239,7 +240,7 @@ next_action_state[DR_ACTION_DOMAIN_MAX][DR_ACTION_STATE_MAX][DR_ACTION_TYP_MAX]
|
|||
[DR_ACTION_TYP_INSERT_HDR] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_REMOVE_HDR] = DR_ACTION_STATE_DECAP,
|
||||
[DR_ACTION_TYP_MODIFY_HDR] = DR_ACTION_STATE_MODIFY_HDR,
|
||||
[DR_ACTION_TYP_POP_VLAN] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_POP_VLAN] = DR_ACTION_STATE_POP_VLAN,
|
||||
[DR_ACTION_TYP_VPORT] = DR_ACTION_STATE_TERM,
|
||||
},
|
||||
[DR_ACTION_STATE_TERM] = {
|
||||
|
@ -257,7 +258,7 @@ next_action_state[DR_ACTION_DOMAIN_MAX][DR_ACTION_STATE_MAX][DR_ACTION_TYP_MAX]
|
|||
[DR_ACTION_TYP_L2_TO_TNL_L3] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_INSERT_HDR] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_REMOVE_HDR] = DR_ACTION_STATE_DECAP,
|
||||
[DR_ACTION_TYP_PUSH_VLAN] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_PUSH_VLAN] = DR_ACTION_STATE_PUSH_VLAN,
|
||||
[DR_ACTION_TYP_VPORT] = DR_ACTION_STATE_TERM,
|
||||
},
|
||||
[DR_ACTION_STATE_DECAP] = {
|
||||
|
@ -282,15 +283,15 @@ next_action_state[DR_ACTION_DOMAIN_MAX][DR_ACTION_STATE_MAX][DR_ACTION_TYP_MAX]
|
|||
[DR_ACTION_TYP_L2_TO_TNL_L2] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_L2_TO_TNL_L3] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_INSERT_HDR] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_PUSH_VLAN] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_PUSH_VLAN] = DR_ACTION_STATE_PUSH_VLAN,
|
||||
[DR_ACTION_TYP_VPORT] = DR_ACTION_STATE_TERM,
|
||||
},
|
||||
[DR_ACTION_STATE_MODIFY_VLAN] = {
|
||||
[DR_ACTION_STATE_PUSH_VLAN] = {
|
||||
[DR_ACTION_TYP_DROP] = DR_ACTION_STATE_TERM,
|
||||
[DR_ACTION_TYP_FT] = DR_ACTION_STATE_TERM,
|
||||
[DR_ACTION_TYP_SAMPLER] = DR_ACTION_STATE_TERM,
|
||||
[DR_ACTION_TYP_PUSH_VLAN] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_CTR] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_PUSH_VLAN] = DR_ACTION_STATE_PUSH_VLAN,
|
||||
[DR_ACTION_TYP_CTR] = DR_ACTION_STATE_PUSH_VLAN,
|
||||
[DR_ACTION_TYP_L2_TO_TNL_L2] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_L2_TO_TNL_L3] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_INSERT_HDR] = DR_ACTION_STATE_ENCAP,
|
||||
|
@ -306,7 +307,7 @@ next_action_state[DR_ACTION_DOMAIN_MAX][DR_ACTION_STATE_MAX][DR_ACTION_TYP_MAX]
|
|||
[DR_ACTION_TYP_L2_TO_TNL_L3] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_INSERT_HDR] = DR_ACTION_STATE_ENCAP,
|
||||
[DR_ACTION_TYP_REMOVE_HDR] = DR_ACTION_STATE_DECAP,
|
||||
[DR_ACTION_TYP_PUSH_VLAN] = DR_ACTION_STATE_MODIFY_VLAN,
|
||||
[DR_ACTION_TYP_PUSH_VLAN] = DR_ACTION_STATE_PUSH_VLAN,
|
||||
[DR_ACTION_TYP_VPORT] = DR_ACTION_STATE_TERM,
|
||||
},
|
||||
[DR_ACTION_STATE_TERM] = {
|
||||
|
|
Loading…
Reference in New Issue