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

Submitted by:  Simon Goldschmidt <goldsimon>
Submitted on:  Fri 04 May 2007 09:50:46 PM UTC  
 
Category: IPv4Severity: 1 - Wish
Item Group: Faulty BehaviourStatus: None
Privacy: PublicAssigned to: Frédéric Bernon <fbernon>
Open/Closed: ClosedPlanned Release: None
lwIP version: None

(Jump to the original submission 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>
Project MemberIn charge of this item.
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>
Project 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>
Project MemberIn charge of this item.
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>
Project 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>
Project MemberIn charge of this item.
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>
Project 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>
Project MemberIn charge of this item.
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>
Project 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>
Project MemberIn charge of this item.
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>
Project 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>
Project MemberIn charge of this item.
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>
Project 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>
Project Administrator

 

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

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 26 Jul 2007 03:03:11 PM UTCthedoctorCarbon-Copy-=>Added thedoctor
    Tue 22 May 2007 07:03:37 AM UTCfbernonOpen/ClosedOpen=>Closed
    Mon 07 May 2007 11:10:03 AM UTCfbernonAssigned toNone=>fbernon

    Back to the top


    Powered by Savane 3.1-cleanup1