buglwIP - A Lightweight TCP/IP stack - Bugs: bug #43105, IGMP Membership General Query...

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #43105: IGMP Membership General Query being ignored

Submitter:  Alex <arudzki>
Submitted:  Fri 29 Aug 2014 06:30:11 AM UTC
   
 
Category:  IPv4 Severity:  3 - Normal
Item Group:  None Status:  Invalid
Privacy:  Public Assigned to:  goldsimon
Open/Closed:  Closed Planned Release:  None
lwIP version:  1.3.1

Tue 02 Sep 2014 05:05:50 AM UTC, comment #3: 

You can call igmp_start() manually for that netif if you don't want to change TI's sources, but setting the flag is definitively preferred.

-> invalid

Simon Goldschmidt <goldsimon>
Group administrator
Tue 02 Sep 2014 02:11:49 AM UTC, comment #2: 

Thanks for the reply! Looks like a TI StellarisWare issue with their lwIP implementation.

It turns out that flag wasn't being set in the stellarisif_hwinit function which gets called in TI's stellarisif_init (This is the function that gets passed to netif_add)... It seems only the default flags were being set as per the 'ethernetif.c' skeleton, even though multicast reception was being enabled on the interface.

NETIF_FLAG_IGMP was getting manually set after netif_add was being called in my project such that igmp would sort of work.

Alex <arudzki>
Mon 01 Sep 2014 08:03:31 PM UTC, comment #1: 

Have you set NETIF_FLAG_IGMP to netif->flags in your netif's init function (the one passed to netif_add)? This ensures igmp_init is called, which sets up the RX filter for the allsystems group and adds it to the list of groups so it should be found by igmp_lookfor_group.

Simon Goldschmidt <goldsimon>
Group administrator
Fri 29 Aug 2014 06:30:11 AM UTC, original submission:  

In my project I join a single multicast group

I have noticed since adding a switch with IGMP Snooping onto my network that IGMPv2 Membership General Queries on All hosts (224.0.0.1) addresses are being ignored from my project devices running lwIP.

I managed to track the problem down to igmp.c - igmp_lookfor_group.
The if statement should be (group->interface == ifp) && (ip_addr_cmp(&(group->group_address), addr) || ip_addr_cmp(&allsystems, addr))
so that the Membership Query on the All hosts address can pass through..

igmp_lookfor_group(...) blocks the Membership Query when it is called in ip_input(...) and then would block again in igmp_input(...).

Alex <arudzki>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by goldsimon (Posted a comment)
  • -email is unavailable- added by arudzki (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

     

    Follow 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2014-09-02 goldsimon StatusWorks For Me Invalid
        Open/ClosedOpen Closed
    2014-09-01 goldsimon StatusNone Works For Me
        Assigned toNone goldsimon

    Back to the top

    Powered by Savane 3.13-02a9.
    Corresponding source code