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

Erwin Burgstaller ethercat.berknapp at spamgourmet.com
Thu Mar 12 17:38:49 CET 2009


Hi,

There's a problem, if a EoE enabled slave has ring position 1. I don't
know, if just icmp packets are the only one affected, but it seems to be
a bug in the master (v1.4) code.

So I have the following:

eoe0s0    Link encap:Ethernet  HWaddr 00:11:22:33:44:85  
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:96 errors:2 dropped:0 overruns:0 frame:0
          TX packets:62 errors:10 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:46932 (45.8 KiB)  TX bytes:43363 (42.3 KiB)

eoe0s1    Link encap:Ethernet  HWaddr 00:11:22:33:44:86  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:399 errors:1 dropped:0 overruns:0 frame:0
          TX packets:1010 errors:7 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:514331 (502.2 KiB)  TX bytes:706614 (690.0 KiB)

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.

To see just EoE packtes, this filter might be usefull for wireshark in
that special case:

frame[51:1] == 02 || frame[31:1]==02

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.

Regards,
	Erwin

-- 
Erwin Burgstaller



More information about the Etherlab-users mailing list