Commit f7ee799a authored by Pieter Jansen van Vuuren's avatar Pieter Jansen van Vuuren Committed by David S. Miller
Browse files

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: 5571e8c9 ("nfp: extend flower matching capabilities")
Signed-off-by: default avatarPieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com>
Signed-off-by: default avatarLouis Peens <louis.peens@netronome.com>
Reviewed-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3c446e6f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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)
+13 −14
Original line number Diff line number Diff line
@@ -30,22 +30,21 @@ 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,
		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) |
				  NFP_FLOWER_MASK_VLAN_CFI;
				      match.key->vlan_id);
		ext->tci = cpu_to_be16(tmp_tci);
			tmp_tci = FIELD_PREP(NFP_FLOWER_MASK_VLAN_PRIO,

		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) |
				  NFP_FLOWER_MASK_VLAN_CFI;
				      match.mask->vlan_id);
		msk->tci = cpu_to_be16(tmp_tci);
	}
}
}

static void
nfp_flower_compile_ext_meta(struct nfp_flower_ext_meta *frame, u32 key_ext)