diff options
author | Hadar Hen Zion <hadarh@mellanox.com> | 2016-08-17 12:36:10 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-08-19 08:13:13 +0200 |
commit | d5709f7ab77679d407a7687fc5ad7cc7442cc651 (patch) | |
tree | 0c81a4b8ffcf8995ac047b89b760f1b6b9ed6901 /include/net/flow_dissector.h | |
parent | Merge branch 'qed-link-fixes' (diff) | |
download | linux-d5709f7ab77679d407a7687fc5ad7cc7442cc651.tar.xz linux-d5709f7ab77679d407a7687fc5ad7cc7442cc651.zip |
flow_dissector: For stripped vlan, get vlan info from skb->vlan_tci
Early in the datapath skb_vlan_untag function is called, stripped
the vlan from the skb and set skb->vlan_tci and skb->vlan_proto fields.
The current dissection doesn't handle stripped vlan packets correctly.
In some flows, vlan doesn't exist in skb->data anymore when applying
flow dissection on the skb, fix that.
In case vlan info wasn't stripped before applying flow_dissector (RPS
flow for example), or in case of skb with multiple vlans (e.g. 802.1ad),
get the vlan info from skb->data. The flow_dissector correctly skips
any number of vlans and stores only the first level vlan.
Fixes: 0744dd00c1b1 ('net: introduce skb_flow_dissect()')
Signed-off-by: Hadar Hen Zion <hadarh@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/flow_dissector.h')
0 files changed, 0 insertions, 0 deletions