buglwIP - A Lightweight TCP/IP stack - Bugs: bug #19800, IGMP: igmp_tick() will not work...

 
 

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

bug #19800: IGMP: igmp_tick() will not work with NO_SYS=1

Submitter:  Simon Goldschmidt <goldsimon>
Submitted:  Fri 04 May 2007 09:50:46 PM UTC
   
 
Category:  IPv4 Severity:  1 - Wish
Item Group:  Faulty Behaviour Status:  None
Privacy:  Public Assigned to:  fbernon
Open/Closed:  Closed Planned Release:  None
lwIP version:  None

Jump to the original submission

Tue 22 May 2007 07:03:37 AM UTC, comment #12: 

Good, handling the good initialization for igmp when you add a network interface at any time will be another task...

Frédéric Bernon <fbernon>
Group Member
Tue 22 May 2007 07:01:33 AM UTC, comment #11: 

Ok, but we can clos this bug, can't we? I think the fact that igmp only works with interfaces that are added in the tcpip_init_done callback (or before) is worth another bug entry!

Simon Goldschmidt <goldsimon>
Group administrator
Wed 16 May 2007 02:21:14 PM UTC, comment #10: 

Yes, the same idea of snmp call from netif_add by example...

Frédéric Bernon <fbernon>
Group Member
Wed 16 May 2007 02:19:42 PM UTC, comment #9: 


>but there is something to improve to handle problem explain in comment #6...


Like a call into igmp.c from netif.c if a netif is set up/down?

Simon Goldschmidt <goldsimon>
Group administrator
Wed 16 May 2007 02:16:25 PM UTC, comment #8: 

Ok, the original problem is fixed, but there is something to improve to handle problem explain in comment #6...

Frédéric Bernon <fbernon>
Group Member
Fri 11 May 2007 05:01:05 PM UTC, comment #7: 

Take your time, it's not that important. I just wanted to know what you were talking about ;-)

Simon Goldschmidt <goldsimon>
Group administrator
Fri 11 May 2007 04:36:31 PM UTC, comment #6: 


>Isn't what you're saying a general problem when adding a netif after igmp_init? (in other words not related to NO_SYS setting?)


Yes, you're right. But if I "split" igmp_init to put one part in tcpip_init, and one on the beginning of tcpip_thread (the igmp timer), some init like the macfilter won't be done if the netif is add with "netifapi_netif_add", or during "tcpip_init_done". That's why I think I have to fix both in the same time.... In my case, it's not a problem, but check in like this could "broke" lwIP for some users...

But it's not a big work. Perhaps this evenning ?


Frédéric Bernon <fbernon>
Group Member
Fri 11 May 2007 04:23:43 PM UTC, comment #5: 

I don't think I understand what you're saying. All I would do is move the call to sys_timeout() from igmp.c into tcpip.c so that igmp_tick() can simply be called from a main loop if using lwIP without tcpip_thread.

Isn't what you're saying a general problem when adding a netif after igmp_init? (in other words not related to NO_SYS setting?)

Simon Goldschmidt <goldsimon>
Group administrator
Fri 11 May 2007 09:12:57 AM UTC, comment #4: 

Due to the fact we can now add/remove interfaces at any time, a clean patch is not so simple. I study that...

Frédéric Bernon <fbernon>
Group Member
Mon 07 May 2007 11:02:48 AM UTC, comment #3: 


> If you prefer, I can do it myself.


Sure, go ahead! I don't have that much time at the moment, anyway, so it would take some time until I do it...

Simon Goldschmidt <goldsimon>
Group administrator
Mon 07 May 2007 10:59:41 AM UTC, comment #2: 

Yes, of course, you can, and I will test it Wednesday. I wanted to let the igmp.c file with the less chnages as possible (from the Steve Reynolds code).

But now, we can integrate it like the others ones. If you prefer, I can do it myself.

Frédéric Bernon <fbernon>
Group Member
Mon 07 May 2007 09:21:23 AM UTC, comment #1: 

Frédéric,
as it was you who introduced igmp, I ask you: may I change the IGMP timer initialization to be in tcpip_thread like all other timers and move the call to igmp_init() into tcpip_init()?

Simon Goldschmidt <goldsimon>
Group administrator
Fri 04 May 2007 09:50:46 PM UTC, original submission:  

Because it uses sys_timeout() directly, igmp_tick() will not work with NO_SYS=1 since for this, sys_timeout() is defined to nothing.

I propose to just remove the sys_timeout() call from igmp_tick() and instead including a comment that this function has to be called every x milliseconds.

Then, I would create a wrapper function in tcpip.c for those who use netconn or socket API and create the timer in tcpip_init() (like for all the other timers). This way, one can call igmp_init() from anyywhere (e.g. initialization before OS starts), also, which resembles the init scheme for the other modules.

Simon Goldschmidt <goldsimon>
Group administrator

 

(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 fbernon (Posted a comment)
  • -email is unavailable- added by goldsimon (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 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2007-07-26 thedoctor Carbon-Copy- Added thedoctor
    2007-05-22 fbernon Open/ClosedOpen Closed
    2007-05-07 fbernon Assigned toNone fbernon

    Back to the top

    Powered by Savane 3.13-758e.
    Corresponding source code