Messages in this thread | | | Date | Mon, 30 Oct 2023 20:38:30 +0100 | Subject | Re: [PATCH v2] net: r8169: Disable multicast filter for RTL_GIGA_MAC_VER_46 | From | Heiner Kallweit <> |
| |
On 30.10.2023 17:52, Patrick Thompson wrote: > I wouldn't trust the mc filter, the eap packet being filtered is not a > multicast packet so I wonder what else could be erroneously filtered. > I do agree that it would be nice to be able to override it for testing > purposes. >
I'm not an EAP(OL) expert, just read that EAPOL can use unicast, broadcast , and ethernet multicast (01:80:C2:00:00:03). What's that target MAC and IP4 address of the packet being filtered out in your case?
> Would you like me to add MAC_VER_48 to the patch? I would not be able > to test and confirm that it affects it in the same way I have for > VER_46. > Yes, VER_48 should be included because it has the same MAC as VER_46.
> It is unfortunate that the naming doesn't quite line up. > > On Sat, Oct 28, 2023 at 4:38 AM Heiner Kallweit <hkallweit1@gmail.com> wrote: >> >> On 27.10.2023 23:30, Patrick Thompson wrote: >>> MAC_VER_46 ethernet adapters fail to detect eapol packets unless >>> allmulti is enabled. Add exception for VER_46 in the same way VER_35 >>> has an exception. >>> >> MAC_VER_48 (RTL8107E) has the same MAC, just a different PHY. >> So I would expect that the same quirk is needed for MAC_VER_48. >> >> MAC_VER_xx is a little misleading, actually it should be NIC_VER_xx >> >>> Fixes: 6e1d0b898818 ("r8169:add support for RTL8168H and RTL8107E") >>> Signed-off-by: Patrick Thompson <ptf@google.com> >>> --- >>> >>> Changes in v2: >>> - add Fixes tag >>> - add net annotation >>> - update description >>> >>> drivers/net/ethernet/realtek/r8169_main.c | 3 ++- >>> 1 file changed, 2 insertions(+), 1 deletion(-) >>> >>> diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c >>> index 361b90007148b..a775090650e3a 100644 >>> --- a/drivers/net/ethernet/realtek/r8169_main.c >>> +++ b/drivers/net/ethernet/realtek/r8169_main.c >>> @@ -2584,7 +2584,8 @@ static void rtl_set_rx_mode(struct net_device *dev) >>> rx_mode |= AcceptAllPhys; >>> } else if (netdev_mc_count(dev) > MC_FILTER_LIMIT || >>> dev->flags & IFF_ALLMULTI || >>> - tp->mac_version == RTL_GIGA_MAC_VER_35) { >>> + tp->mac_version == RTL_GIGA_MAC_VER_35 || >>> + tp->mac_version == RTL_GIGA_MAC_VER_46) { >>> /* accept all multicasts */ >>> } else if (netdev_mc_empty(dev)) { >>> rx_mode &= ~AcceptMulticast; >>
| |