TCP/IP problems

Stan zylog at
Wed Jul 21 20:39:42 UTC 2004


Last day, I talked to you about a problem with TCP stack.
I didn't succeed to solve this.

At present, my board has 1Mo of SRAM :
256 Ko for RTEMS executive,
512 Ko for heap,
default mbuf and cluster capacity.

All protocol works properly, except TCP/IP.
I can send many large packets with ICMP request;
I can send and receive packets over UDP.
With TCP, all writes followed by a read socket work properly.
However, a lot of write ( ex : for(i=0; i< 1000; i++) write(fd, buffer,
n); )
send a few data only : each next write returns well 'n' bytes but doesn't
over ethernet driver.
Write function _doesn't return error_ .
In same case, but with UDP socket, this works properly.

I have some questions ;-) :

Why the write function never returns an error ?
For example, I modify the program loopback for making
many writes without read : at some point, all mbufs are used.
But no error from write function ?

How to reduce used TCP memory , even if performs
are decreasing ?

Where can I modify the window size ?

Also, I note a different effect depending to host ( Linux or Winxx ).
I work with bsp based upon mcf5206elite and rtems-4.6.1.

Thanks a lot.


- Stan

More information about the users mailing list