net: flow_dissector: Wrap unionized VLAN fields in a struct
In commita82055af59
("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:a82055af59
("netfilter: nft_payload: add VLAN offload support") Signed-off-by: Petr Machata <petrm@mellanox.com> Reviewed-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4bbb02f1a5
commit
d1746d1e80
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue