nfp: flower: replace CFI with vlan present
Replace vlan CFI bit with a vlan present bit that indicates the
presence of a vlan tag. Previously the driver incorrectly assumed
that an vlan id of 0 is not matchable, therefore we indicate vlan
presence with a vlan present bit.
Fixes: 5571e8c9f2
("nfp: extend flower matching capabilities")
Signed-off-by: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com>
Signed-off-by: Louis Peens <louis.peens@netronome.com>
Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3c446e6f96
commit
f7ee799a51
|
@ -26,7 +26,7 @@
|
|||
#define NFP_FLOWER_LAYER2_GENEVE_OP BIT(6)
|
||||
|
||||
#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_MPLS_LB GENMASK(31, 12)
|
||||
|
|
|
@ -30,20 +30,19 @@ nfp_flower_compile_meta_tci(struct nfp_flower_meta_tci *ext,
|
|||
|
||||
flow_rule_match_vlan(rule, &match);
|
||||
/* Populate the tci field. */
|
||||
if (match.key->vlan_id || match.key->vlan_priority) {
|
||||
tmp_tci = FIELD_PREP(NFP_FLOWER_MASK_VLAN_PRIO,
|
||||
match.key->vlan_priority) |
|
||||
FIELD_PREP(NFP_FLOWER_MASK_VLAN_VID,
|
||||
match.key->vlan_id) |
|
||||
NFP_FLOWER_MASK_VLAN_CFI;
|
||||
ext->tci = cpu_to_be16(tmp_tci);
|
||||
tmp_tci = FIELD_PREP(NFP_FLOWER_MASK_VLAN_PRIO,
|
||||
match.mask->vlan_priority) |
|
||||
FIELD_PREP(NFP_FLOWER_MASK_VLAN_VID,
|
||||
match.mask->vlan_id) |
|
||||
NFP_FLOWER_MASK_VLAN_CFI;
|
||||
msk->tci = cpu_to_be16(tmp_tci);
|
||||
}
|
||||
tmp_tci = NFP_FLOWER_MASK_VLAN_PRESENT;
|
||||
tmp_tci |= FIELD_PREP(NFP_FLOWER_MASK_VLAN_PRIO,
|
||||
match.key->vlan_priority) |
|
||||
FIELD_PREP(NFP_FLOWER_MASK_VLAN_VID,
|
||||
match.key->vlan_id);
|
||||
ext->tci = cpu_to_be16(tmp_tci);
|
||||
|
||||
tmp_tci = NFP_FLOWER_MASK_VLAN_PRESENT;
|
||||
tmp_tci |= FIELD_PREP(NFP_FLOWER_MASK_VLAN_PRIO,
|
||||
match.mask->vlan_priority) |
|
||||
FIELD_PREP(NFP_FLOWER_MASK_VLAN_VID,
|
||||
match.mask->vlan_id);
|
||||
msk->tci = cpu_to_be16(tmp_tci);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue