FreeBSD on Hyper-V network driver negotiation

Dexuan Cui decui at microsoft.com
Tue Mar 23 22:47:30 UTC 2021


Hi Alex,
“the hn0 interface is set to 10GbaseT/ full-duplex” à this should not matter, because the “hn0” interface in a FreeBSD VM on Hyper-V is a virtual NIC which doesn’t really have the concept of “1000baseT”, “10GbaseT”, .etc.   I think we just happen to report 10GbaseT in the “hn” driver, but actually we can report anything -- probably we should change the driver to report 100Gbps, just in case people think the vNIC is limited to 10Gbps. :-)  If the underlying physical NIC is a 100Gbps NIC, then theoretically the vNIC should be able to reach a speed near to 100Gbps.

It would good if you can share your ‘dmesg’, ‘ifconfig -a’, “arp -n -a”, and “netstat -r”, and when you try to ping your default gateway, please also run “tcpdump -i hn0”  and check if something is wrong (you can add “-w tcpdump.cap”  to save the caputred packets into a file and share it if necessary).

Can you try the vNIC with a standard FreeBSD VM, e.g. you can try the pre-generated BSD image here:
https://download.freebsd.org/ftp/releases/VM-IMAGES/12.2-RELEASE/amd64/Latest/
https://download.freebsd.org/ftp/releases/VM-IMAGES/12.2-RELEASE/amd64/Latest/FreeBSD-12.2-RELEASE-amd64.vhd.xz

Thanks,
-- Dexuan

From: Alex Leach <zander_leach at hotmail.com>
Sent: Tuesday, March 23, 2021 2:13 PM
To: freebsd-virtualization at freebsd.org
Cc: Microsoft FreeBSD Team <bsdic at microsoft.com>
Subject: FreeBSD on Hyper-V network driver negotiation

Hello,

I've recently installed a virtualized instance of pfSense on Hyper-V and am having trouble with the network driver attached to an external switch.

The physical network adapter is an Intel X550 10Gbps NIC, and it is physically connected to a 1Gbps port on a SonicWall router. There is no connectivity at all to the SonicWall router, I can't ping or route traffic through it at all, when the SonicWall is set as the default gateway.

The problem as I see it, is that negotiation doesn't work. Under ifconfig, I can see the hn0 interface is set to 10GbaseT/ full-duplex, and no other media speeds are available. I cannot manually set the interface to 1000baseT, which is what I think should be automatically negotiated with the SonicWall.

Maybe this is a bit of an edge case scenario, having a 10Gbps NIC connected to a 1Gbps switch, but I expected it to work out of the box.

Please could you offer some advice as to how I can get this to work. Obviously if there is any logging or debugging information I can provide, please let me know.

Thanks and kind regards,
Alex

PS. Apologies for not providing any specific error messages or output here, I thought I'd start with a summary overview of what I see as the issue.


More information about the freebsd-virtualization mailing list