[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-devel] [bug #39145] IGMP membership report for 224.0.0.1
From: |
Michel van de Wetering |
Subject: |
[lwip-devel] [bug #39145] IGMP membership report for 224.0.0.1 |
Date: |
Mon, 03 Jun 2013 12:29:37 +0000 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36 |
URL:
<http://savannah.nongnu.org/bugs/?39145>
Summary: IGMP membership report for 224.0.0.1
Project: lwIP - A Lightweight TCP/IP stack
Submitted by: mvdwetering
Submitted on: Mon 03 Jun 2013 12:29:36 PM GMT
Category: IPv4
Severity: 3 - Normal
Item Group: Faulty Behaviour
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Planned Release:
lwIP version: 1.4.0
_______________________________________________________
Details:
We got reports from users of our product that there were issues with IGMP
membership reports that we are sending. The only group we join is
"239.255.255.250" for UPnP broadcasts, but additional membership reports are
generated for 224.0.0.1 (the all systems group). The problematic membership
reports are the ones to 224.0.0.1. These membership reports are automatically
generated by lwIP.
This is a problem because the router that our system is connected to has a bug
with the handling of the membership report for 224.0.0.1 which effectively
breaks the all systems group for the router.
According to the RFC2236 (IGMPv2) sending the membership report for the
allsystems group is invalid.
>The all-systems group (address 224.0.0.1) is handled as a
>special case. The host starts in Idle Member state for that
>group on every interface, never transitions to another state,
>and never sends a report for that group.
The reason why the reports are sent is because in the igmp_report_groups
function all groups are added. The grouplist also contains the allsystems
group. So this causes the membership reports to be sent.
We are using lwIP 1.4.0, but I checked the code and there are no changes in
that part of the code so it will also be in 1.4.1.
I made the following change to avoid the membership reports for the allsystems
group (also in attached patch). In igmp.c / igmp_report_groups() replace:
if (group->netif == netif) {
by:
if ((group->netif == netif) && (!(ip_addr_cmp(&(group->group_address),
&allsystems)))) {
I am not sure if this completely covers the statement from the RFC2236 that it
never should transition to another state. But at least the membership reports
for 224.0.0.1 are not sent anymore and it seems to have no negative impact.
_______________________________________________________
File Attachments:
-------------------------------------------------------
Date: Mon 03 Jun 2013 12:29:36 PM GMT Name: igmp_allsystems_report.patch
Size: 742B By: mvdwetering
<http://savannah.nongnu.org/bugs/download.php?file_id=28232>
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/bugs/?39145>
_______________________________________________
Message sent via/by Savannah
http://savannah.nongnu.org/
- [lwip-devel] [bug #39145] IGMP membership report for 224.0.0.1,
Michel van de Wetering <=