Commit d1b58fc6 authored by David S. Miller's avatar David S. Miller

Merge branch 'nfp-flower-fix-matching-and-pushing-vlan-CFI-bit'

Jakub Kicinski says:

====================
nfp: flower: fix matching and pushing vlan CFI bit

This patch clears up some confusion around the meaning of bit 12
for FW messages related to VLAN and flower offload.

Pieter says:
It fixes issues with matching, pushing and popping vlan tags.
We replace the vlan CFI bit with a vlan present bit that
indicates the presence of a vlan tag. We also no longer set
the CFI when pushing vlan tags.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 3c446e6f 42cd5484
...@@ -48,8 +48,7 @@ nfp_fl_push_vlan(struct nfp_fl_push_vlan *push_vlan, ...@@ -48,8 +48,7 @@ nfp_fl_push_vlan(struct nfp_fl_push_vlan *push_vlan,
tmp_push_vlan_tci = tmp_push_vlan_tci =
FIELD_PREP(NFP_FL_PUSH_VLAN_PRIO, act->vlan.prio) | FIELD_PREP(NFP_FL_PUSH_VLAN_PRIO, act->vlan.prio) |
FIELD_PREP(NFP_FL_PUSH_VLAN_VID, act->vlan.vid) | FIELD_PREP(NFP_FL_PUSH_VLAN_VID, act->vlan.vid);
NFP_FL_PUSH_VLAN_CFI;
push_vlan->vlan_tci = cpu_to_be16(tmp_push_vlan_tci); push_vlan->vlan_tci = cpu_to_be16(tmp_push_vlan_tci);
} }
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#define NFP_FLOWER_LAYER2_GENEVE_OP BIT(6) #define NFP_FLOWER_LAYER2_GENEVE_OP BIT(6)
#define NFP_FLOWER_MASK_VLAN_PRIO GENMASK(15, 13) #define NFP_FLOWER_MASK_VLAN_PRIO GENMASK(15, 13)
#define NFP_FLOWER_MASK_VLAN_CFI BIT(12) #define NFP_FLOWER_MASK_VLAN_PRESENT BIT(12)
#define NFP_FLOWER_MASK_VLAN_VID GENMASK(11, 0) #define NFP_FLOWER_MASK_VLAN_VID GENMASK(11, 0)
#define NFP_FLOWER_MASK_MPLS_LB GENMASK(31, 12) #define NFP_FLOWER_MASK_MPLS_LB GENMASK(31, 12)
...@@ -82,7 +82,6 @@ ...@@ -82,7 +82,6 @@
#define NFP_FL_OUT_FLAGS_TYPE_IDX GENMASK(2, 0) #define NFP_FL_OUT_FLAGS_TYPE_IDX GENMASK(2, 0)
#define NFP_FL_PUSH_VLAN_PRIO GENMASK(15, 13) #define NFP_FL_PUSH_VLAN_PRIO GENMASK(15, 13)
#define NFP_FL_PUSH_VLAN_CFI BIT(12)
#define NFP_FL_PUSH_VLAN_VID GENMASK(11, 0) #define NFP_FL_PUSH_VLAN_VID GENMASK(11, 0)
#define IPV6_FLOW_LABEL_MASK cpu_to_be32(0x000fffff) #define IPV6_FLOW_LABEL_MASK cpu_to_be32(0x000fffff)
......
...@@ -30,20 +30,19 @@ nfp_flower_compile_meta_tci(struct nfp_flower_meta_tci *ext, ...@@ -30,20 +30,19 @@ nfp_flower_compile_meta_tci(struct nfp_flower_meta_tci *ext,
flow_rule_match_vlan(rule, &match); flow_rule_match_vlan(rule, &match);
/* Populate the tci field. */ /* Populate the tci field. */
if (match.key->vlan_id || match.key->vlan_priority) { tmp_tci = NFP_FLOWER_MASK_VLAN_PRESENT;
tmp_tci = FIELD_PREP(NFP_FLOWER_MASK_VLAN_PRIO, tmp_tci |= FIELD_PREP(NFP_FLOWER_MASK_VLAN_PRIO,
match.key->vlan_priority) | match.key->vlan_priority) |
FIELD_PREP(NFP_FLOWER_MASK_VLAN_VID, FIELD_PREP(NFP_FLOWER_MASK_VLAN_VID,
match.key->vlan_id) | match.key->vlan_id);
NFP_FLOWER_MASK_VLAN_CFI; ext->tci = cpu_to_be16(tmp_tci);
ext->tci = cpu_to_be16(tmp_tci);
tmp_tci = FIELD_PREP(NFP_FLOWER_MASK_VLAN_PRIO, tmp_tci = NFP_FLOWER_MASK_VLAN_PRESENT;
match.mask->vlan_priority) | tmp_tci |= FIELD_PREP(NFP_FLOWER_MASK_VLAN_PRIO,
FIELD_PREP(NFP_FLOWER_MASK_VLAN_VID, match.mask->vlan_priority) |
match.mask->vlan_id) | FIELD_PREP(NFP_FLOWER_MASK_VLAN_VID,
NFP_FLOWER_MASK_VLAN_CFI; match.mask->vlan_id);
msk->tci = cpu_to_be16(tmp_tci); msk->tci = cpu_to_be16(tmp_tci);
}
} }
} }
......
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