--- zzzz-none-000/linux-4.9.231/drivers/net/vxlan.c 2020-07-22 07:10:54.000000000 +0000 +++ falcon-5590-729/linux-4.9.231/drivers/net/vxlan.c 2022-03-30 12:03:35.000000000 +0000 @@ -2291,6 +2291,19 @@ return NETDEV_TX_OK; } +#if IS_ENABLED(CONFIG_PPA) +extern int32_t (*ppa_is_vxlan_fn)(struct net_device *dev); + +static int32_t ppa_if_dev_is_vxlan(struct net_device *netdev) +{ + int ret = 0; + + ret = (netdev->netdev_ops->ndo_start_xmit == vxlan_xmit) ? 1 : 0; + + return ret; +} +#endif + /* Walk the forwarding table and purge stale entries */ static void vxlan_cleanup(unsigned long arg) { @@ -3420,6 +3433,9 @@ if (rc) goto out3; +#if IS_ENABLED(CONFIG_PPA) + ppa_is_vxlan_fn = ppa_if_dev_is_vxlan; +#endif return 0; out3: unregister_netdevice_notifier(&vxlan_notifier_block); @@ -3432,6 +3448,9 @@ static void __exit vxlan_cleanup_module(void) { +#if IS_ENABLED(CONFIG_PPA) + ppa_is_vxlan_fn = NULL; +#endif rtnl_link_unregister(&vxlan_link_ops); unregister_netdevice_notifier(&vxlan_notifier_block); unregister_pernet_subsys(&vxlan_net_ops);