All, I am working to add VLAN interface creation over HSR/PRP interface. It works fine after I fixed the HSR driver to allow creation of VLAN over it and with VLAN without hw acceleration. But with hw acceleration, the HSR hook is bypassed in net/core/dev.c as
if (skb_vlan_tag_present(skb)) { if (pt_prev) { ret = deliver_skb(skb, pt_prev, orig_dev); pt_prev = NULL; } if (vlan_do_receive(&skb)) goto another_round; else if (unlikely(!skb)) goto out; } rx_handler = rcu_dereference(skb->dev->rx_handler); if (rx_handler) { if (pt_prev) { ret = deliver_skb(skb, pt_prev, orig_dev); pt_prev = NULL; } switch (rx_handler(&skb)) { case RX_HANDLER_CONSUMED: ret = NET_RX_SUCCESS; goto out; case RX_HANDLER_ANOTHER: goto another_round; case RX_HANDLER_EXACT: deliver_exact = true; case RX_HANDLER_PASS: break; default: BUG(); } } What is the best way to address this issue? With VLAN hw acceleration, skb_vlan_tag_present(skb) is true and rx_handler() is not called. Thanks -- Murali Karicheri Texas Instruments