On Wed, 30 Apr 2025 13:00:53 +0530 Prashant Upadhyaya <praupadhy...@gmail.com> wrote:
> > With DPDK on Azure, an application should never use the VF directly. > > It needs to use either netvsc PMD which handles both the vmbus (slow path) > > and VF (fast path) combined. Or use the older vdev_netvsc/failsafe/tap > > combination. > > The latter uses a virtual device to make a failsafe PMD which then does > > a combination of TAP (via kernel slow path) and MLX5 VF. The failsafe PMD > > is what is exposed for application usage. > > > > The limitations are not explicitly mentioned in the documentation but: > > - don't use VF directly in application > > - there is no support for bifurcation where some packets go to kernel > > and some to DPDK > > - there is only very limited support for rte_flow; that is with failsafe > > PMD > > (not netvsc PMD) and the limitations are that the emulation of rte_flow > > in the TAP device only supports a few things. > > > > Thanks Stephen, the above information was very instructive. > If I do use the Netvsc PMD with the latest DPDK, will my DPDK app get the > non IP packets like ARP, please confirm. > I quickly tried the Netvsc PMD but don't seem to be getting the ARP packets > in still. > When you mention "The failsafe PMD is what is exposed for application > usage", what is the meaning of this, are the apps expected to use failsafe > PMD, please suggest. > > Regards > -Prashant ARP handled differently in virtual network environments. The ARP packets sent get consumed and replied to by the network infrastructure (in all virtual networks not just Azure). Non-IP packets always show up on the synthetic VMBus device. Current docs are here: https://learn.microsoft.com/en-us/azure/virtual-network/setup-dpdk?tabs=redhat See vdev_netvsc for picture. https://doc.dpdk.org/guides/nics/vdev_netvsc.html