On Fri, Aug 12, 2016 at 9:36 AM, Toshiaki Makita <makita.toshi...@lab.ntt.co.jp> wrote: > 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().
right, I'll fix it to v2. > Also, in cases skb is tagged with multiple vlan headers (typical when > using 802.1ad), the second level vlan tag is in skb->data. Currently, flow_dissector doesn't support multiple vlan headers, only one vlan_id field is present. There aren't any flow_dissector "customers" yet for multiple vlan support. > So I think you should handle both of skb->vlan_tci and skb->data cases. Sure, will do it. > > Thanks, > Toshiaki Makita > >