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 LWIP_RAND() is defined to use rand(). I am doing UDP packets processing in hardware (total of 7 UDP streams on gigabit interface), but I need LwIP to keep all multicast connections alive and send appropriate IGMP messages to the Ethernet. Some IGMP settings: #define LWIP_IGMP 1 #define MEMP_NUM_IGMP_GROUP 8 // This is actually strange and I am not sure if I set this correctly for 7 channels. Tried 16 - same problems IGMP_TMR_INTERVAL = 100 (also tried 50) Now the problem: I need to join 7 multicast groups, so for tests, in main() program before while(1) I do igmp join: ret = igmp_joingroup(&alteraTseNetif.ip_addr,&IP0); to... ret = igmp_joingroup(&alteraTseNetif.ip_addr,&IP6); Those IPs are prepared structures using IP4_ADDR(), everything there's fine. When I printf the structure data, all the IPs are correct. The software returns igmp_joingroup() = 0, which is a successful result, but when I am sniffing data on WireShark, I see totally different result and sometimes it's completely random. Example: System starts, I do joingroup to addresses: IP0 = 239.2.3.61 IP1 = 239.2.3.74 IP2 = 239.2.3.85 IP3 = 239.2.3.93 IP4 = 239.2.3.94 IP5 = 239.2.3.55 IP6 = 239.2.3.25 All joins are reported as successful (returns 0) The WireShark sniffer reports: Membership report / Join group 239.2.3.93 And that's it.(Sometimes I see join to address 239.2.3.25 and then 239.2.3.61 (how can it be? buffering?)) After 1 minute and 30 seconds I see another join: Membership report / Join group 239.2.3.55 After another 40 seconds: Membership report / Join group 239.2.3.61 Now silence for 2 minutes and I see: Membership report / Join group 239.2.3.55
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? Thank You. Sincerely, Tomas D. _______________________________________________ lwip-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/lwip-users
