]>
Commit | Line | Data |
---|---|---|
0ee3da53 GKH |
1 | From foo@baz Sat Apr 20 16:43:09 CEST 2019 |
2 | From: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com> | |
3 | Date: Mon, 1 Apr 2019 19:36:33 -0700 | |
4 | Subject: nfp: flower: replace CFI with vlan present | |
5 | ||
6 | From: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com> | |
7 | ||
8 | [ Upstream commit f7ee799a51ddbcc205ef615fe424fb5084e9e0aa ] | |
9 | ||
10 | Replace vlan CFI bit with a vlan present bit that indicates the | |
11 | presence of a vlan tag. Previously the driver incorrectly assumed | |
12 | that an vlan id of 0 is not matchable, therefore we indicate vlan | |
13 | presence with a vlan present bit. | |
14 | ||
15 | Fixes: 5571e8c9f241 ("nfp: extend flower matching capabilities") | |
16 | Signed-off-by: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com> | |
17 | Signed-off-by: Louis Peens <louis.peens@netronome.com> | |
18 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
19 | --- | |
20 | drivers/net/ethernet/netronome/nfp/flower/cmsg.h | 2 +- | |
21 | drivers/net/ethernet/netronome/nfp/flower/match.c | 14 ++++++-------- | |
22 | 2 files changed, 7 insertions(+), 9 deletions(-) | |
23 | ||
24 | --- a/drivers/net/ethernet/netronome/nfp/flower/cmsg.h | |
25 | +++ b/drivers/net/ethernet/netronome/nfp/flower/cmsg.h | |
26 | @@ -26,7 +26,7 @@ | |
27 | #define NFP_FLOWER_LAYER2_GENEVE_OP BIT(6) | |
28 | ||
29 | #define NFP_FLOWER_MASK_VLAN_PRIO GENMASK(15, 13) | |
30 | -#define NFP_FLOWER_MASK_VLAN_CFI BIT(12) | |
31 | +#define NFP_FLOWER_MASK_VLAN_PRESENT BIT(12) | |
32 | #define NFP_FLOWER_MASK_VLAN_VID GENMASK(11, 0) | |
33 | ||
34 | #define NFP_FLOWER_MASK_MPLS_LB GENMASK(31, 12) | |
35 | --- a/drivers/net/ethernet/netronome/nfp/flower/match.c | |
36 | +++ b/drivers/net/ethernet/netronome/nfp/flower/match.c | |
37 | @@ -26,14 +26,12 @@ nfp_flower_compile_meta_tci(struct nfp_f | |
38 | FLOW_DISSECTOR_KEY_VLAN, | |
39 | target); | |
40 | /* Populate the tci field. */ | |
41 | - if (flow_vlan->vlan_id || flow_vlan->vlan_priority) { | |
42 | - tmp_tci = FIELD_PREP(NFP_FLOWER_MASK_VLAN_PRIO, | |
43 | - flow_vlan->vlan_priority) | | |
44 | - FIELD_PREP(NFP_FLOWER_MASK_VLAN_VID, | |
45 | - flow_vlan->vlan_id) | | |
46 | - NFP_FLOWER_MASK_VLAN_CFI; | |
47 | - frame->tci = cpu_to_be16(tmp_tci); | |
48 | - } | |
49 | + tmp_tci = NFP_FLOWER_MASK_VLAN_PRESENT; | |
50 | + tmp_tci |= FIELD_PREP(NFP_FLOWER_MASK_VLAN_PRIO, | |
51 | + flow_vlan->vlan_priority) | | |
52 | + FIELD_PREP(NFP_FLOWER_MASK_VLAN_VID, | |
53 | + flow_vlan->vlan_id); | |
54 | + frame->tci = cpu_to_be16(tmp_tci); | |
55 | } | |
56 | } | |
57 |