lwip-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] [bug #47731] IGMP state transition missing


From: Ryan Mullen
Subject: [lwip-devel] [bug #47731] IGMP state transition missing
Date: Mon, 18 Apr 2016 18:44:12 +0000
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0

URL:
  <http://savannah.nongnu.org/bugs/?47731>

                 Summary: IGMP state transition missing
                 Project: lwIP - A Lightweight TCP/IP stack
            Submitted by: rmull
            Submitted on: Mon 18 Apr 2016 06:44:11 PM GMT
                Category: IPv4
                Severity: 3 - Normal
              Item Group: None
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
         Planned Release: 
            lwIP version: git head

    _______________________________________________________

Details:

I was browsing the code in core/ipv4/igmp.c and I am a bit confused by the
means by which the multicast group state gets set to IGMP_GROUP_IDLE_MEMBER.

For reference, here is the IGMPv2 RFC section that describes the state diagram
for an IGMP host: https://tools.ietf.org/html/rfc2236#section-6 (scroll down
for an ASCII-art diagram).

The RFC says that state should transition from IGMP_GROUP_DELAYING_MEMBER to
IGMP_GROUP_IDLE_MEMBER when the timer expires. However, in igmp.c, we see that
igmp_timeout() sends the group report as expected, but does not transition
state. In fact, the state variable is only set to IDLE_MEMBER in two places:
from igmp_start() which is called once during interface bringup, and when the
interface receives a group report while waiting to send its own.

Therefore, the only condition that can cancel the DELAYING_MEMBER state and
return to an IDLE_MEMBER state is when a group member receives a group report
from some other host belonging to the same group, which is not necessarily
going to happen.

Shouldn't the group get set into IGMP_GROUP_IDLE_MEMBER state from
igmp_timeout()?




    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/bugs/?47731>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/




reply via email to

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