Netdev List
 help / color / mirror / Atom feed
* [PATCH net-next] net: flow_dissector: Wrap unionized VLAN fields in a struct
@ 2019-11-22 15:47 Petr Machata
  2019-11-22 16:29 ` Jiri Pirko
  2019-11-22 17:44 ` David Miller
  0 siblings, 2 replies; 3+ messages in thread
From: Petr Machata @ 2019-11-22 15:47 UTC (permalink / raw)
  To: netdev@vger.kernel.org
  Cc: Petr Machata, davem@davemloft.net, Pablo Neira Ayuso

In commit a82055af5959 ("netfilter: nft_payload: add VLAN offload
support"), VLAN fields in struct flow_dissector_key_vlan were unionized
with the intention of introducing another field that covered the whole TCI
header. However without a wrapping struct the subfields end up sharing the
same bits. As a result, "tc filter add ... flower vlan_id 14" specifies not
only vlan_id, but also vlan_priority.

Fix by wrapping the individual VLAN fields in a struct.

Fixes: a82055af5959 ("netfilter: nft_payload: add VLAN offload support")
Signed-off-by: Petr Machata <petrm@mellanox.com>
---
 include/net/flow_dissector.h | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/include/net/flow_dissector.h b/include/net/flow_dissector.h
index f06b0239c32b..b8c20e9f343e 100644
--- a/include/net/flow_dissector.h
+++ b/include/net/flow_dissector.h
@@ -49,9 +49,11 @@ struct flow_dissector_key_tags {
 
 struct flow_dissector_key_vlan {
 	union {
-		u16	vlan_id:12,
-			vlan_dei:1,
-			vlan_priority:3;
+		struct {
+			u16	vlan_id:12,
+				vlan_dei:1,
+				vlan_priority:3;
+		};
 		__be16	vlan_tci;
 	};
 	__be16	vlan_tpid;
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-11-22 17:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-11-22 15:47 [PATCH net-next] net: flow_dissector: Wrap unionized VLAN fields in a struct Petr Machata
2019-11-22 16:29 ` Jiri Pirko
2019-11-22 17:44 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox