[-- Attachment #1: Type: text/plain, Size: 932 bytes --] Hello, I have been trying to use the netvsc PMD driver lately and face an issue with the RSS flag for UDP. I figured that this is because the PMD does not handle NDIS_HASH_UDP_IPV4, so I am planning at trying to submit a change to the PMD, however I am unsure about the value of the UDP constant. I found on https://microsoft.github.io/windows-docs-rs/doc/windows/Win32/NetworkManagement/Ndis/constant.NDIS_HASH_UDP_IPV4.html that it should be 0x00004000. Would someone have some proper knowledge about this specific setting? And after having used that change locally, I am now facing some issues with the mlx4 PMD used under the hood of netvsc. My memory allocation makes my buffers exist at a different location than my memory pool and this creates an issue: net_mlx4: port 0 unable to find virtually contiguous chunk for address Did someone already tried to use some custom memory management with the mlx pmd? Thanks, Sylvain [-- Attachment #2: Type: text/html, Size: 1147 bytes --]
On Thu, 12 May 2022 19:09:19 +0100 Sylvain Vasseur <remmog@gmail.com> wrote: > Hello, > > I have been trying to use the netvsc PMD driver lately and face an issue > with the RSS flag for UDP. > I figured that this is because the PMD does not handle NDIS_HASH_UDP_IPV4, > so I am planning at trying to submit a change to the PMD, however I am > unsure about the value of the UDP constant. I found on > https://microsoft.github.io/windows-docs-rs/doc/windows/Win32/NetworkManagement/Ndis/constant.NDIS_HASH_UDP_IPV4.html > that it should be 0x00004000. > Would someone have some proper knowledge about this specific setting? > > And after having used that change locally, I am now facing some issues with > the mlx4 PMD used under the hood of netvsc. My memory allocation makes my > buffers exist at a different location than my memory pool and this creates > an issue: > net_mlx4: port 0 unable to find virtually contiguous chunk for address > Did someone already tried to use some custom memory management with the mlx > pmd? > > Thanks, > Sylvain It should be able to do UDP hash (for non-fragmented packets only). Look at FreeBSD: https://github.com/freebsd/freebsd-src/tree/main/sys/dev/hyperv/netvsc And Linux kernel: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/hyperv/rndis_filter.c The Linux driver is the definitive source. The FreeBSD driver is where netvsc PMD was derived from.