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

Submitted by:  Alex <arudzki>
Submitted on:  Fri 29 Aug 2014 06:30:11 AM UTC  
 
Category: IPv4Severity: 3 - Normal
Item Group: NoneStatus: Invalid
Privacy: PublicAssigned to: Simon Goldschmidt <goldsimon>
Open/Closed: ClosedPlanned 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>
Project AdministratorIn charge of this item.
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>
Project AdministratorIn charge of this item.
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>

 

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

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

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 4 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Tue 02 Sep 2014 05:05:50 AM UTCgoldsimonStatusWorks For Me=>Invalid
      Open/ClosedOpen=>Closed
    Mon 01 Sep 2014 08:03:31 PM UTCgoldsimonStatusNone=>Works For Me
      Assigned toNone=>goldsimon

    Back to the top


    Powered by Savane 3.1-cleanup1