On Wed, 13 Apr 2022 11:41:30 -0700 Yang Luan <[email protected]> wrote:
> Thanks Stephen. > > Is the Netvsc PMD selected by default or I'll need to specify it somewhere? > > Since I'm running a proprietary UDP protocol, 3rd parties (e.g. Azure) > won't know how a flow is established. I'm curious how exactly Azure selects > which NIC to receive a given packet? > > Yang > > On Wed, Apr 13, 2022 at 8:58 AM Stephen Hemminger < > [email protected]> wrote: > > > On Tue, 12 Apr 2022 13:09:51 -0700 > > Yang Luan <[email protected]> wrote: > > > > > Hi, > > > > > > We have an application using DPDK on AWS and would like to port it to > > > Azure. What would be recommended PMD to use? If I understand correctly, > > we > > > can either use the Netvsc PMD or the vdev_Netvsc PMD. It seems the Netvsc > > > PMD is newer. > > > > Short answer: > > > > Netvsc PMD is faster and can handle events better. > > vdev_netvsc/failsafe/tap is slower but can emulate some types of rte_flow. > > > > > > > > An alternative is to use the mlx4 PMD by only attaching to the mlx NIC's > > > PCI address. As I understand it, the concern is the mlx nic may not > > receive > > > all the packets. We run a proprietary UDP based protocol on top of DPDK. > > > Are all UDP packets guaranteed to be received by the mlx NIC? > > > > That won't work. the MLX device only sees established flows. > > The choice is made based on whether vmbus is unbound from kernel or not. If vmbus is left bound to kernel, then hv_netvsc will look at all the network devices, and those without any routes it will setup. The setup makes the TAP/failsafe sub devices. If vmbus device is unbound from network device and instead bound to hv_uio_generic, then the DPDK startup code will see it and should setup from there. The documentation is there in many places.
