lwip-devel
[Top][All Lists]
Advanced

[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/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]