On Sat, 28 Dec 2019 15:46:33 -0800 Haiyang Zhang <haiyangz@xxxxxxxxxxxxx> wrote: > - net = alloc_etherdev_mq(sizeof(struct net_device_context), > - VRSS_CHANNEL_MAX); > + snprintf(name, IFNAMSIZ, "eth%d", dev->channel->dev_num); > + net = alloc_netdev_mqs(sizeof(struct net_device_context), name, > + NET_NAME_ENUM, ether_setup, > + VRSS_CHANNEL_MAX, VRSS_CHANNEL_MAX); > + Naming is a hard problem, and best left to userspace. By choosing ethN as a naming policy, you potentially run into naming conflicts with other non netvsc devices like those passed through or SR-IOV devices. Better to have udev use dev_num and use something like envN or something. Udev also handles SRIOV devices in later versions. Fighting against systemd, netplan, etc is not going to be make friends.