Wed, Aug 17, 2016 at 12:36:10PM CEST, [email protected] wrote: >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 <[email protected]>
Acked-by: Jiri Pirko <[email protected]>
