[etherlab-dev] EtherCAT WARNING: 1 datagram UNMATCHED!

Zarges, Olav Olav.Zarges at imc-berlin.de
Mon Jun 16 18:29:24 CEST 2008


Hi Florian,

thanks for your response.

>> received packet:
>>
>> 	index=140, state=2, type=10, size=960
>>
>>
>> packets in master->datagram_queue:
>>
>> 	index=142, state=2, type=10, data_size=960
>> 	index=141, state=2, type= 4, data_size=2
>>
>> ...
>>
>> Any idea, why packet with index 140 isn't in the datagram_queue and/or
>> where it can get lost?
> 
> Datagrams are only taken from the queue, if they
> - could not be sent due to the link being down
> - are received
> - timed out.
> 
> Do you get a notification about datagrams that timed out or were
> skipped, too?

No, there is no notification about timed out or skipped datagrams, just
the datagram unmatched warning.

> I noticed, that the datagram size is very large, perhaps too large for
> 200 us? (960+24)*8/200e-6/1024/1024 are already ~38 MBit/s. Usually no
> problem, but did you try to increase the period?

No, but I reduced the packet-size which cures the problem. But instead
of reducing ethernet utilization I even thought of sending 800 bytes every
100 us (~63 MBit/s) which should (?) be possible on a 1.6GHz system,
shouldn't it?

> Moreover I wonder why datagram 142 is in the queue before 141...

You're right! I didn't notice in the first place.

What can cause such a behaviour? Any race condition which scrambles the
queue(s)? I guess I need to have a closer look to ec_master_send_datagrams().

Best regard
Olav



More information about the Etherlab-dev mailing list