Bug 213618

Summary: When running as a Hyper-V Guest, FreeBSD 11 networking does not work
Product: Base System Reporter: caesar
Component: kernAssignee: freebsd-virtualization (Nobody) <virtualization>
Status: Closed FIXED    
Severity: Affects Some People CC: garga, hunreal, lwhsu, sepherosa
Priority: ---    
Version: 11.0-RC1   
Hardware: amd64   
OS: Any   

Description caesar 2016-10-19 16:50:24 UTC
Host OS: Windows Server 2012
Guest OS: FreeBSD 11.0-RELEASE-p1

Neither the syntetic hnX NIC or the emulated Tulip deX NICs appear to be able to transmit.  The NICs are detected, and appear to be able to receive traffic (IPv6 SLAAC works, tcpdump shows broadcast/multicast traffic), but the NICs are unable to transmit.  dhclient complains send_packet: No buffer space available.  After configuring a static address with ifconfig, attempts to send packets via ping do not show up in a tcpdump.  This has been verified under the following conditions:

10.3-RELEASE upgrade to 11.0-RELEASE
11.0-RELEASE fresh installation from .iso
11.0-RELEASE .vhd image from ftp.freebsd.org

dmesg related to hn:
hn0: <Hyper-V Network Interface> on vmbus0
hn0: LRO: entry count 128
hn0: unknown status 1073872902 received
hn0: unknown status 1073872902 received
hn0: hv send offload request succeeded
hn0: 1 TX ring, 1 RX ring
hn0: Ethernet address: 00:15:5d:xx:xx:xx
hn0: TSO: 65517/31/4096
hn0: link state changed to UP

ifconfig hn0 shows:
hn0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=71b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,TSO4,TSO6,LRO>
ether 00:15:5d:xx:xx:xx
inet6 fe80::... prefixlen 64 scopeid 0x2
inet6 2601:... prefixlen 64 autoconf
inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
media: Ethernet autoselect (10Gbase-T <full-duplex>)
status: active
Comment 1 hunreal 2016-10-20 03:49:27 UTC
Same here.

Also tried ifconfig hn0 -tso, -lro, -rxcsum -txcsum or all of them, not work.

10.3-RELEASE is working perfectly.

Host OS: Windows Server 2012 (not R2)
Comment 2 Sepherosa Ziehau 2016-10-20 06:39:12 UTC
Can you try hnX on 11-stable?  There is a bug I fixed for WS2008R2, which shows the same symptom as you have described (receiving works, sending does not).
Comment 3 caesar 2016-10-20 13:38:06 UTC
There don't appear to be any 11-STABLE snapshots available on ftp.freebsd.org at the moment, just 10.3-STABLE and 12-CURRENT.  I'll try to use FreeBSD-update to upgrade a 10.3-RELEASE to 11-STABLE.
Comment 4 caesar 2016-10-20 21:11:11 UTC
Had to checkout 11.0-STABLE with subversion and build from scratch.  I can confirm that the problem appears to be fixed in -STABLE.
Comment 5 Renato Botelho freebsd_committer freebsd_triage 2016-12-29 18:43:40 UTC
(In reply to Sepherosa Ziehau from comment #2)
Do you remember the revision of this fix? Maybe it's something we should cherry-pick to pfSense tree that is based on 11.0-RELEASE to help with https://redmine.pfsense.org/issues/6911
Comment 6 Sepherosa Ziehau 2016-12-30 01:05:57 UTC
(In reply to Renato Botelho from comment #5)

It's this commit:
https://svnweb.freebsd.org/base?view=revision&revision=306433

The redmine can't be accessed.  I believe this bug only affects WS2008R2 and WS2012, while WS2012R2 and WS2016 are fine.