* [ECOS] TCP/IP large packets -errors
@ 2001-04-20 5:25 Marek Łącki
2001-04-20 6:20 ` Lewin A.R.W. Edwards
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Marek Łącki @ 2001-04-20 5:25 UTC (permalink / raw)
To: ecos-discuss
I have a problem with stack TCP or network card driver (NE200) on platform
i386.
Stack works correctly if i send packets less than 1500 bytes. When I send
more than 1500 bytes for example 1600 bytes ( tested on ping ), eCos
responses for first part (1500 bytes) and dosen't response for next
parts(100bytes). Then if i send later less than 1500 bytes ,eCos response
for request and send extra this 100 bytes from first large frame.
What's happend ?????
Marek lacki@rts.com.pl
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [ECOS] TCP/IP large packets -errors
2001-04-20 5:25 [ECOS] TCP/IP large packets -errors Marek Łącki
@ 2001-04-20 6:20 ` Lewin A.R.W. Edwards
2001-04-20 7:15 ` Hugo Tyson
2001-04-24 20:40 ` Andrew Lunn
2 siblings, 0 replies; 4+ messages in thread
From: Lewin A.R.W. Edwards @ 2001-04-20 6:20 UTC (permalink / raw)
To: Marek Łącki, ecos-discuss
>Stack works correctly if i send packets less than 1500 bytes. When I send
>more than 1500 bytes for example 1600 bytes ( tested on ping ), eCos
What's the MTU on that interface?
=== Lewin A.R.W. Edwards (Embedded Engineer)
Work: http://www.digi-frame.com/
Personal: http://www.zws.com/ and http://www.larwe.com/
"... a man who is endowed with real qualities of leadership will be tempted
to refrain from taking part in political life; because [...] the situation
does not call for a man who has a capacity for constructive statesmanship
but rather for a man who is capable of bargaining for the favour of the
majority. Thus the situation will appeal to small minds and will attract
them accordingly."
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [ECOS] TCP/IP large packets -errors
2001-04-20 5:25 [ECOS] TCP/IP large packets -errors Marek Łącki
2001-04-20 6:20 ` Lewin A.R.W. Edwards
@ 2001-04-20 7:15 ` Hugo Tyson
2001-04-24 20:40 ` Andrew Lunn
2 siblings, 0 replies; 4+ messages in thread
From: Hugo Tyson @ 2001-04-20 7:15 UTC (permalink / raw)
To: ecos-discuss
"=?iso-8859-2?B?TWFyZWsgo7Fja2k=?=" <lacki@rts.com.pl> writes:
> I have a problem with stack TCP or network card driver (NE200) on platform
> i386.
> Stack works correctly if i send packets less than 1500 bytes. When I send
> more than 1500 bytes for example 1600 bytes ( tested on ping ), eCos
> responses for first part (1500 bytes) and dosen't response for next
> parts(100bytes). Then if i send later less than 1500 bytes ,eCos response
> for request and send extra this 100 bytes from first large frame.
> What's happend ?????
Bigger pings work fine with ARMs and i82559 or LAN91C96 &c. They split
into several smaller packets, and are sent back OK.
You don't say what release you're using.
There was a problem ages ago with the reassembly of those ICMP fragments,
to do with the alignment of MBUFs causing a macro not to work.
Astonishingly it only affected ICMP fragments! Here's the ChangLog entry.
2000-06-23 Hugo Tyson <hmt@cygnus.co.uk>
* src/ecos/support.c (cyg_net_mbuf_alloc, cyg_kmem_init): Align
the mbuf pool to MSIZE [128] bytes. That way dtom() works, nasty
though it is. That's needed for ip reassembly in ip_input.c, when
dealing with large icmp-layer packets eg. ping -s 2000 ...
Ensure you have that change.
It could be that your driver (I guess you're writing the ether driver) is
not correctly handling multiple queued-up send requests, if the packets are
eventually getting out when another rx occurs.
- Huge
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [ECOS] TCP/IP large packets -errors
2001-04-20 5:25 [ECOS] TCP/IP large packets -errors Marek Łącki
2001-04-20 6:20 ` Lewin A.R.W. Edwards
2001-04-20 7:15 ` Hugo Tyson
@ 2001-04-24 20:40 ` Andrew Lunn
2 siblings, 0 replies; 4+ messages in thread
From: Andrew Lunn @ 2001-04-24 20:40 UTC (permalink / raw)
To: Marek ãñcki; +Cc: ecos-discuss
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1063 bytes --]
On Fri, Apr 20, 2001 at 02:33:23PM +0200, Marek £±cki wrote:
> I have a problem with stack TCP or network card driver (NE200) on platform
> i386.
> Stack works correctly if i send packets less than 1500 bytes. When I send
> more than 1500 bytes for example 1600 bytes ( tested on ping ), eCos
> responses for first part (1500 bytes) and dosen't response for next
> parts(100bytes). Then if i send later less than 1500 bytes ,eCos response
> for request and send extra this 100 bytes from first large frame.
> What's happend ?????
This works correctly on an EBSA with a i82559. I can ping with big packets,
eg
ping -s 1600 192.168.9.215
and both fragments are sent imeadiatly. My guess there is a bug in the
NE2000 device driver. There may be a race condition when two frames
are sent in quick sucsession. eg, its adding the second frame into the
TX queue while the TX complete interrupt for the previous frame goes
off. The second frame is then not sent until the next frame is queued
to be sent and so kicks the delayed frame out.
Andrew
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2001-04-24 20:40 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-04-20 5:25 [ECOS] TCP/IP large packets -errors Marek Łącki
2001-04-20 6:20 ` Lewin A.R.W. Edwards
2001-04-20 7:15 ` Hugo Tyson
2001-04-24 20:40 ` Andrew Lunn
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).