https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295176

            Bug ID: 295176
           Summary: if_rge: IPv6 and multicast filtering issues
           Product: Base System
           Version: 16.0-CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: [email protected]
          Reporter: [email protected]

Hi,

I'm using a RTL8125 2.5GbE adapter on FreeBSD 16 and I'm having some glitches
with IPv6:

1) After 20 minutes my system will lose its IPv6 default route that it acquired
during boot through rtsold. If I restart rtsold or call rtsol I will get the
route back for another 20 minutes;

2) After having an IPv6 address and default route after booting the system,
IPv6 traffic will not immediately flow until I send a ping to my router (which
is also a FreeBSD box) IPv6 address. After some debugging I noticed that the
NDP table on the router didn't know my machine until I pinged it directly.
After doing that, traffic will flow (until I hit the problem 1).

As these things rely on multicast, I suspect the problem is multicast filtering
in the device. See below why I've got to this conclusion.

I left tcpdump running on my rge0 interface and noticed that the problem
wouldn't happen while the interface was in promisc mode. After checking the
if_rge.c code I saw that multicast filtering is handled differently when
promisc mode OR IFF_ALLMULTI are enabled.

After learning that, I enabled allmulti on my rge0 (ifconfig rge0 allmulti) and
a few seconds later I got the default IPv6 route back on the next RA (without
restarting rtsold).


For anyone hitting the same problem, try this: ifconfig rge0 allmulti

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to