The DPDK's netvsc poll mode driver documentation seems incomplete: https://doc.dpdk.org/guides/nics/netvsc.html
It mentions following to detach a synthetic vmbus NIC from the netvsc driver and bind to uio_hv_generic kernel driver:
The first step is to identify the network device to override. VMBUS uses Universal Unique Identifiers ([UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier)) to identify devices on the bus similar to how PCI uses Domain:Bus:Function. The UUID associated with a Linux kernel network device can be determined by looking at the sysfs information. To find the UUID for eth1 and store it in a shell variable:
DEV_UUID=$(basename $(readlink /sys/class/net/eth1/device))
There are several possible ways to assign the UIO device driver for a device. The easiest way (but only on 4.18 or later) is to use the [driverctl Device Driver control utility](https://gitlab.com/driverctl/driverctl) to override the normal kernel device.
driverctl -b vmbus set-override $DEV_UUID uio_hv_generic
Any settings done with driverctl are by default persistent and will be reapplied on reboot.
On older kernels, the same effect can be had by manual sysfs bind and unbind operations:
echo $NET_UUID > /sys/bus/vmbus/drivers/uio_hv_generic/new_id
echo $DEV_UUID > /sys/bus/vmbus/drivers/hv_netvsc/unbind
echo $DEV_UUID > /sys/bus/vmbus/drivers/uio_hv_generic/bind
There is an end NOTE that says following:
NOTE: The dpdk-devbind.py script can not be used since it only handles PCI devices.
Can someone please tell me the next steps? How to direct dpdk to attach its hv_netvsc driver to the given vmbus NIC considering that the dpdk-devbind.py only supports PCI devices and expects PCI coorindates to be passed?