public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
* [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 &Lstrok;&aogon;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 &Lstrok;&aogon;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).