Skip to content

Commit d1b58fc

Browse files
committed
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: David S. Miller <[email protected]>
2 parents 3c446e6 + 42cd548 commit d1b58fc

File tree

3 files changed

+15
-18
lines changed

3 files changed

+15
-18
lines changed

drivers/net/ethernet/netronome/nfp/flower/action.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ nfp_fl_push_vlan(struct nfp_fl_push_vlan *push_vlan,
4848

4949
tmp_push_vlan_tci =
5050
FIELD_PREP(NFP_FL_PUSH_VLAN_PRIO, act->vlan.prio) |
51-
FIELD_PREP(NFP_FL_PUSH_VLAN_VID, act->vlan.vid) |
52-
NFP_FL_PUSH_VLAN_CFI;
51+
FIELD_PREP(NFP_FL_PUSH_VLAN_VID, act->vlan.vid);
5352
push_vlan->vlan_tci = cpu_to_be16(tmp_push_vlan_tci);
5453
}
5554

drivers/net/ethernet/netronome/nfp/flower/cmsg.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
#define NFP_FLOWER_LAYER2_GENEVE_OP BIT(6)
2727

2828
#define NFP_FLOWER_MASK_VLAN_PRIO GENMASK(15, 13)
29-
#define NFP_FLOWER_MASK_VLAN_CFI BIT(12)
29+
#define NFP_FLOWER_MASK_VLAN_PRESENT BIT(12)
3030
#define NFP_FLOWER_MASK_VLAN_VID GENMASK(11, 0)
3131

3232
#define NFP_FLOWER_MASK_MPLS_LB GENMASK(31, 12)
@@ -82,7 +82,6 @@
8282
#define NFP_FL_OUT_FLAGS_TYPE_IDX GENMASK(2, 0)
8383

8484
#define NFP_FL_PUSH_VLAN_PRIO GENMASK(15, 13)
85-
#define NFP_FL_PUSH_VLAN_CFI BIT(12)
8685
#define NFP_FL_PUSH_VLAN_VID GENMASK(11, 0)
8786

8887
#define IPV6_FLOW_LABEL_MASK cpu_to_be32(0x000fffff)

drivers/net/ethernet/netronome/nfp/flower/match.c

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,19 @@ nfp_flower_compile_meta_tci(struct nfp_flower_meta_tci *ext,
3030

3131
flow_rule_match_vlan(rule, &match);
3232
/* Populate the tci field. */
33-
if (match.key->vlan_id || match.key->vlan_priority) {
34-
tmp_tci = FIELD_PREP(NFP_FLOWER_MASK_VLAN_PRIO,
35-
match.key->vlan_priority) |
36-
FIELD_PREP(NFP_FLOWER_MASK_VLAN_VID,
37-
match.key->vlan_id) |
38-
NFP_FLOWER_MASK_VLAN_CFI;
39-
ext->tci = cpu_to_be16(tmp_tci);
40-
tmp_tci = FIELD_PREP(NFP_FLOWER_MASK_VLAN_PRIO,
41-
match.mask->vlan_priority) |
42-
FIELD_PREP(NFP_FLOWER_MASK_VLAN_VID,
43-
match.mask->vlan_id) |
44-
NFP_FLOWER_MASK_VLAN_CFI;
45-
msk->tci = cpu_to_be16(tmp_tci);
46-
}
33+
tmp_tci = NFP_FLOWER_MASK_VLAN_PRESENT;
34+
tmp_tci |= FIELD_PREP(NFP_FLOWER_MASK_VLAN_PRIO,
35+
match.key->vlan_priority) |
36+
FIELD_PREP(NFP_FLOWER_MASK_VLAN_VID,
37+
match.key->vlan_id);
38+
ext->tci = cpu_to_be16(tmp_tci);
39+
40+
tmp_tci = NFP_FLOWER_MASK_VLAN_PRESENT;
41+
tmp_tci |= FIELD_PREP(NFP_FLOWER_MASK_VLAN_PRIO,
42+
match.mask->vlan_priority) |
43+
FIELD_PREP(NFP_FLOWER_MASK_VLAN_VID,
44+
match.mask->vlan_id);
45+
msk->tci = cpu_to_be16(tmp_tci);
4746
}
4847
}
4948

0 commit comments

Comments
 (0)