[ECOS] ping reply not synchronized with the ping request
Jürgen Lambrecht
J.Lambrecht@televic.com
Wed Jun 4 09:23:00 GMT 2008
Solved.
Was a (last?) bug in if_at91.c, cf.
http://ecos.sourceware.org/ml/ecos-discuss/2008-06/msg00013.html.
I had forgotten to call '_eth_drv_tx_done' and set 'priv->tx_busy =
false' in case of a TX error.
In attach again the patch.
Test result:
500 pings worked, no loss.
For each ping, "AT91_ETH: Tx BEX" is printed (buffers exhausted in
mid-frame). I think that is because the last DMA runs out of data but it
is ok because there is no data anymore - maybe the length of the DMA is
wrong?
Kind regards,
Juergen
Lambrecht Jürgen wrote:
> Hello,
>
> Now I've got the Ethernet driver running for my AT91SAM9260-EK based board (if_at91.c - see previous posts of me), I have some strange behavior with the FreeBSD TCP/IP stack:
>
> -> at startup a gratuitous ARP is sent out
> <- when a ARP request arrives
> -> again a gratuitous ARP is sent out
> <- then the ICMP ping request 1 arrives
> -> a normal ARP reply is sent
> <- ping request 2
> -> ping reply 1
> <- ping request 3
> ...
> When I stop the ping, and start again after clearing the arp cache, the last
> "lost" ping reply is sent as response to the first ARP request.
>
> It is like the TX or RX part holds on to 1 packet, and only releases it when a
> new packet arrives.
>
> Why again a gratuitous ARP - is the driver initialized again?
> Or does the driver normally sends out 2 gratuitous ARPs at startup?
>
> Kind regards,
> Jürgen
>
>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: if_at91_udiff2.txt
URL: <http://sourceware.org/pipermail/ecos-discuss/attachments/20080604/da0e98e1/attachment.txt>
-------------- next part --------------
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
More information about the Ecos-discuss
mailing list