On Fri, Aug 12, 2016 at 9:36 AM, Toshiaki Makita
[off-list ref] wrote:
On 2016/08/10 22:32, Hadar Hen Zion wrote:
quoted
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