This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: max IP packet size = 9216 B. Why?
- From: Jürgen Lambrecht <jurgen dot lambrecht2 at telenet dot be>
- To: Andrew Lunn <andrew at lunn dot ch>, ecos-discuss at ecos dot sourceware dot org
- Date: Tue, 12 Jun 2007 21:35:31 +0200
- Subject: Re: [ECOS] max IP packet size = 9216 B. Why?
- References: <466EC08A.8090704@televic.com> <20070612160753.GP26816@lunn.ch>
- Reply-to: Juergen Lambrecht <Jurgen dot Lambrecht at scarlet dot be>
Andrew Lunn wrote:
On Tue, Jun 12, 2007 at 05:49:30PM +0200, J?rgen Lambrecht wrote:
Hello,
I found out that the maximum IP packet size = 9216 B (0x2400).
I implemented an echo program, both udp and tcp.
My ecos applic can receive more that 9216B, but not send back more than
that.
Has anybody a clue how to solve this?
I need to support the maximum IP packet size of 65535 B (IP_MAXPACKET).
Interesting. What network technology do you have underneath
this. Something reliable i presume since even small packet error rates
are going to cause big delay and inefficiencies with retries.
Don't tell me! Our customer is very stubborn.. Because the maximum size
of an IP packet is 64KB, their suppliers (us) _must_ support it. We must
support IP.
I don't know if this is a bug in ecos, or a (hidden?) limitation of an
embedded OS.
I don't know of anybody else using nearly jumbo packets. So you might
be running into bugs, or configuration tweaks might be needed.
It has nothing to do with Ethernet Jumbo frames. We use the standart
Ethernet MTU 1518B. The IP layer is responsible of fragmenting the IP
packets to fit the MAC's layer MTU.
I'm busy tracing this back in the source
This comes from the socket that is allocated statically in
/io/fileio/.../fd.cxx and socket is part of a cyg_file (cyg_file is
defined by file in file.h). In cyg_file there is a member f_data, which
is the socket.
I'm continuing my search in the code at this point....
Do you get a crash, or does write/sendto return an error code?
sendto returns the error code 322 or EMSGSIZE "Message too long".
I forgot to tell that's because the high water level of the send socket
(o->so_snd.sb_hiwat) is 9216 B (=0x2400) (in file
bsd_tcpip/current/src/sys/kern/uipc_socket.c:523).
I will try to increase the socket's high water level (after I have found
where it is set ;-).
Kind regards,
Juergen
Andrew
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss