Bug in LWIP or EthernetIfBeta (dunno which)

01 Aug 2010 . Edited: 05 Aug 2010

Dunno where the problem is exactly, but for whatever reason, If I try to use EthernetIfBeta to create a multicast application, the checksum of the IGMP Join request is off by 2 bits.

I have included a screencap of a wireshark synopsis of the offending packet. As you can see, it seems as though something is altering bits 9,10,11,12.

It works fine for TCP and UDP, but SOmething about dealing with the IGMP packets is throwing it off. I am not yet familiar enough with the stack to be of much more help than to provide trial and error data.

I know that I am using a beta library, but I don't see any other choices ATM.

Thanks in advance.

Any help or suggestions will be appreciated.

16 Oct 2010

Apparently the problem is not in the IGMP, but in the IP when set for IGMP

16 Oct 2010

Hi Daniel

Where are you getting the EthernetIfBeta from?

Regards
Daniel

16 Oct 2010 . Edited: 16 Oct 2010
user Daniel Peter wrote:
Where are you getting the EthernetIfBeta from?

Actually this is a posting I made regarding EthernetIfBeta when it was still that. It has since merged with several other libraries to become NetServices (but you already knew that). However the bug still remains, in NetServices.

I'm currently working on an application that would really benefit from IGMP. I'm willing to do at least some of the footwork, but I don't even know where to begin.

The really funky thing is that the least significant byte of the checksum is always correct, but the second byte is always screwed up; but only when it's trying to send out an IGMP packet. All other times it is correct.

Oh, and just to be perfectly clear, it is the IP header checksum that is bad, not the IGMP checksum.

16 Oct 2010

Hi Daniel

Are you compiling from code, if so you can set debug options in lwipopts.h (for the lwip part eg. #define IGMP_DEBUG LWIP_DBG_ON) or by uncommenting a debug define in the services source (depends where you think the problem is).

Or, if you are compling yourself, add your own debug code in.

Regards
Daniel

23 Nov 2011

Hi Daniel,

I ran into the same EXACT problem but didn't notice your forum post until now. I too am using IGMP for multicasting data. I solved this with a workaround. See the forum thread here:

http://mbed.org/forum/mbed/topic/919/?page=1#comment-4485