On 2016/08/10 22:32, Hadar Hen Zion 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 vlan packets correctly. Vlan > doesn't exist in skb->data anymore when applying flow dissection on the > skb, fix that.
RPS (and flow-dissector called in RPS) is performed before vlan-strip in __netif_receive_skb_core(). Also, in cases skb is tagged with multiple vlan headers (typical when using 802.1ad), the second level vlan tag is in skb->data. So I think you should handle both of skb->vlan_tci and skb->data cases. Thanks, Toshiaki Makita