The RTL8168F ignores incoming multicast packets. This breaks SLAAC for IPv6 because router advertisements are multicast. The problem also affects minidlna (UPnP media server). While the interface is in PROMISC mode multicast packets are processed. This bug is very similar to Bug 125024 although on a different device. [1] Steps to reproduce: 1. Attach RTL8168F interface to network with working SLAAC-capable router. 2. Set up rc.conf according to handbook. [2] 3. Run "ifconfig re0" and note that only link-local address is set. 4. Run "tcpdump -i re0" and concurrently "rtsol re0". (This puts the device in promiscuous mode, allowing router advertisement to be received.) 5. Run "ifconfig re0" again and note that gloal address has been acquired. [1] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=125024 [2] https://www.freebsd.org/doc/handbook/network-ipv6.html#idp84149040
Over to maintainers.
Could you show me the output dmesg(re(4) only)? I guess the specific controller has a silicon bug such that driver needs a workaround to accept multicast packets.
Thanks, is this the correct information? $ dmesg | grep re0 re0: <RealTek 8168/8111 B/C/CP/D/DP/E/F/G PCIe Gigabit Ethernet> port 0xe800-0xe8ff mem 0xfdfff000-0xfdffffff,0xfdff8000-0xfdffbfff irq 18 at device 0.0 on pci2 re0: Using 1 MSI-X message re0: Chip rev. 0x48000000 re0: MAC rev. 0x00000000 miibus0: <MII bus> on re0 re0: Ethernet address: e0:3f:49:17:xx:xx (MAC address obfuscated for security.)
Created attachment 148493 [details] Disable multicast filtering for RTL8168F
I've attached a diff. Let me know whether it makes any difference for you.
Thank you very much! I can confirm the patch fixes both usecases: IPv6 prefix is successfully acquired via SLAAC and minidlna discovery works as well. (I'm not entirely sure about the FreeBSD bug process, so I'll leave it up to you to close the report. Please contact me if you need more information or testing.)
A commit references this bug: Author: yongari Date: Tue Oct 21 01:31:24 UTC 2014 New revision: 273359 URL: https://svnweb.freebsd.org/changeset/base/273359 Log: It seems multicast filtering of RTL8168F does not work. Workaround the silicon bug by accepting any multicast packets. PR: 193488 MFC After: 1 week Changes: head/sys/dev/re/if_re.c
Patch committed to HEAD. I'll MFC after 1 week. Thanks for your reporting and testing.
A commit references this bug: Author: yongari Date: Tue Oct 28 00:43:01 UTC 2014 New revision: 273757 URL: https://svnweb.freebsd.org/changeset/base/273757 Log: MFC r273359: It seems multicast filtering of RTL8168F does not work. Workaround the silicon bug by accepting any multicast packets. PR: 193488 Changes: _U stable/10/ stable/10/sys/dev/re/if_re.c
A commit references this bug: Author: yongari Date: Tue Oct 28 00:44:20 UTC 2014 New revision: 273758 URL: https://svnweb.freebsd.org/changeset/base/273758 Log: MFC r273359: It seems multicast filtering of RTL8168F does not work. Workaround the silicon bug by accepting any multicast packets. PR: 193488 Changes: _U stable/9/sys/ _U stable/9/sys/dev/ stable/9/sys/dev/re/if_re.c
MFC done.
If its the same bug, this is present in 10.1 release.