Bug 193488 - [re] RTL8168F ignores incoming multicast packets
Summary: [re] RTL8168F ignores incoming multicast packets
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 10.0-RELEASE
Hardware: Any Any
: Normal Affects Only Me
Assignee: Pyun YongHyeon
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-09-09 14:39 UTC by Josua Grawitter
Modified: 2014-12-04 23:24 UTC (History)
3 users (show)

See Also:


Attachments
Disable multicast filtering for RTL8168F (518 bytes, patch)
2014-10-20 07:18 UTC, Pyun YongHyeon
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Josua Grawitter 2014-09-09 14:39:13 UTC
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
Comment 1 Mark Linimon freebsd_committer freebsd_triage 2014-10-20 01:49:25 UTC
Over to maintainers.
Comment 2 Pyun YongHyeon freebsd_committer freebsd_triage 2014-10-20 06:19:51 UTC
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.
Comment 3 Josua Grawitter 2014-10-20 06:37:19 UTC
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.)
Comment 4 Pyun YongHyeon freebsd_committer freebsd_triage 2014-10-20 07:18:41 UTC
Created attachment 148493 [details]
Disable multicast filtering for RTL8168F
Comment 5 Pyun YongHyeon freebsd_committer freebsd_triage 2014-10-20 07:19:44 UTC
I've attached a diff. Let me know whether it makes any difference for you.
Comment 6 Josua Grawitter 2014-10-20 09:32:46 UTC
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.)
Comment 7 commit-hook freebsd_committer freebsd_triage 2014-10-21 01:32:10 UTC
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
Comment 8 Pyun YongHyeon freebsd_committer freebsd_triage 2014-10-21 01:38:37 UTC
Patch committed to HEAD. I'll MFC after 1 week.
Thanks for your reporting and testing.
Comment 9 commit-hook freebsd_committer freebsd_triage 2014-10-28 00:43:38 UTC
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
Comment 10 commit-hook freebsd_committer freebsd_triage 2014-10-28 00:44:40 UTC
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
Comment 11 Pyun YongHyeon freebsd_committer freebsd_triage 2014-10-28 02:14:31 UTC
MFC done.
Comment 12 andrew 2014-12-04 23:24:56 UTC
If its the same bug, this is present in 10.1 release.