--- zzzz-none-000/linux-4.9.276/drivers/net/vxlan.c 2021-07-20 14:21:16.000000000 +0000 +++ falcon-5530-750/linux-4.9.276/drivers/net/vxlan.c 2023-04-05 08:19:01.000000000 +0000 @@ -2297,6 +2297,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) { @@ -3426,6 +3439,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); @@ -3438,6 +3454,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);