lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lwip-users] Joining and keeping in multicast groups


From: Stephane Lesage
Subject: Re: [lwip-users] Joining and keeping in multicast groups
Date: Fri, 25 May 2012 12:44:04 +0200

> -----Message d'origine-----
> Hello,
> I have problems with IGMP messages sending.
> Situation:
> I am using Altera FPGA with Nios II software CPU running at 62.5MHz.
> LwIP 1.4.0
> NO_SYS_NO_TIMERS = 1, so no RTOS
> I am totally lost, what's happening here, the stack even doesn't send
> all the join messages. Sometimes it joins all the groups, but later I
> get timeout, so the stream stops. Sometimes after another 2 minutes,
> the stack rejoins the group, but timeout accours on other groups.
> Maybe someone could help me out here? Maybe I am out of buffers or
> doing something too fast?

Hi,
LwIP 1.4.0 IGMP works for me, at least with an RTOS.

After quick search in the sources, you can find that IGMP processing
needs igmp_tmr() to be called every IGMP_TMR_INTERVAL ms (default is
100).
(joins and replies are not send immediately but with random relay)

This is handled automatically by the new system timeouts management:
sys_timeouts_init() and igmp_timer() in timer.c, which are compiled when
LWIP_TIMERS != 0.
In timers.h:
#define LWIP_TIMERS (!NO_SYS || (NO_SYS && !NO_SYS_NO_TIMERS))

With NO_SYS==1, you have two options:

1. go back to defaut, #define NO_SYS_NO_TIMERS 0, you must provide
sys_now() and call sys_check_timeouts() regularly.
2. keep #define NO_SYS_NO_TIMERS 1, but you must call igmp_tmr()
yourself every IGMP_TMR_INTERVAL ms.

-- 
Stephane Lesage



reply via email to

[Prev in Thread] Current Thread [Next in Thread]