[etherlab-users] EoE: Malformed packets on position 1

Florian Pose fp at igh-essen.com
Wed Mar 18 12:30:52 CET 2009


On Thu, Mar 12, 2009 at 05:38:49PM +0100, Erwin Burgstaller wrote:
> Doing this (pcc1 == 192.168.1.2):
> 
> ping -c 1 -s 520 -p "affe" pcc1; ping -c 1 -s 521 -p "dead" pcc1; \
>       ping -c 1 -s 524 -p "beaf" pcc1; ping -c 1 -s 525 -p 'deaf' pcc1 ; \
>       ping -c 1 -s 526 -p 'fabe' pcc1
> 
> shows up malformed packets with sizes 524 and 526 as you can see in the
> attached wireshark capture file. One can say all works fine up to packet
> size 522.

I guess 522 is the mailbox size, so this could have something to do with
the fragmenting algorithm. Please have a look at 'ethercat slave -v' to
determine the mailbox sizes.

> The next thing, probably resulting from that malformed thing is, the
> ping doesn't work with sizes bigger than 1472 bytes, but *only* if the
> ring position is 1, while it works on other positions, tested up to
> position 7 (can be seen in attachmentmalformed_and_lost_eoe_short.cap.gz)
> 
> The last thing I've tried: An empty EK1100 which is on Position 0 and a
> single EoE device on position 1: Same effect, ping -s 1472 works, ping
> -s 1473 and bigger, doesn't.
> 
> Other EoE operations seems not to be affected, but as it looks like a
> bug, it might do.

I must admit that the EoE code is not maintained as well as other
subsystems since it was initially developed. I know the problem that in
certain cases very large IP packets are not transferred correctly.

Perhaps you could set the #define EOE_DEBUG_LEVEL in master/ethernet.c
to 1 to analyze what is going on in the EoE state machine.

-- 
Best regards,
Florian Pose

http://etherlab.org



More information about the Etherlab-users mailing list