[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-devel] [bug #49139] IGMP "All Systems" vs MLD "All Nodes" inconsis
From: |
Daniel Elstner |
Subject: |
[lwip-devel] [bug #49139] IGMP "All Systems" vs MLD "All Nodes" inconsistency |
Date: |
Tue, 20 Sep 2016 13:47:05 +0000 (UTC) |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/52.0.2743.116 Chrome/52.0.2743.116 Safari/537.36 |
URL:
<http://savannah.nongnu.org/bugs/?49139>
Summary: IGMP "All Systems" vs MLD "All Nodes" inconsistency
Project: lwIP - A Lightweight TCP/IP stack
Submitted by: danielk
Submitted on: Tue 20 Sep 2016 03:47:03 PM CEST
Category: None
Severity: 3 - Normal
Item Group: Change Request
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Planned Release: None
lwIP version: git head
_______________________________________________________
Details:
As my project now makes use of both IGMP and MLD, I discovered the following
oddity:
The lwIP IGMP implementation puts the "All Systems" group in its global
multicast group list, but does some special casing in the code to avoid
actually sending out reports for it.
The MLD implementation, on the other hand, does not put the "All Nodes" group
in its group list, and therefore does not need the special casing dance
either. However, this also means that netif implementations need to explicitly
set up the MAC filter to allow incoming "All Nodes" multicast traffic, in
addition to handling the MAC filter callback.
Should something be done about this? Personally I lean towards making IGMP
behave like MLD already does. It would avoid wasting a memory pool slot for a
constant entry, and would allow the code to be simplified by getting rid of
the special casing. On the other hand, making that kind of change could
silently break existing code.
However, until recently the MAC filter callbacks were rather awkward to
implement anyway. I have a feeling that most netif implementations probably
don't bother with the filter callbacks and simply let all incoming multicast
packets pass. :)
In that light, it might make sense to merge the two filter callbacks for IGMP
and MLD into a single mac_filter_update() callback, without the "action" and
"group" parameters. Handlers would then be required to iterate the group lists
by themselves. But as I've outlined in #49125, doing so is the natural/easiest
way to go about this anyway.
An API change like that would break things at compile time, thereby avoiding
the problem of failing silently.
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/bugs/?49139>
_______________________________________________
Message sent via/by Savannah
http://savannah.nongnu.org/
- [lwip-devel] [bug #49139] IGMP "All Systems" vs MLD "All Nodes" inconsistency,
Daniel Elstner <=