This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: TCP/IP large packets -errors



"=?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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]