This is the mail archive of the ecos-discuss@sourceware.org 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]
Other format: [Raw text]

Re: max IP packet size = 9216 B. Why?


On 06/20/2017 12:29 PM, Jürgen Lambrecht wrote:
Hi,

It is a implicit limitation of eCos: to limit the amount of RAM needed, the maximum IP packet size is 9kB.
This is hardcoded in the eCos code, so I changed it there.
I don't remember where, but when I find it, I will mail you again.
I found it back, and it is not hard-coded.
There is a default set in ecos/packages/net/bsd_tcpip/current/src/sys/netinet/udp_usrreq.c.

But you can overwrite it on the socket:

  udpEchoSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
sendBuf = 65507; //The maximum IP packet has 64KB or 65535 B. The maximum UDP
                   //payload is (- 20B IP  header and 8B UDP header) 65507.
if (setsockopt(udpEchoSocket, SOL_SOCKET, SO_SNDBUF, &sendBuf, sizeof(sendBuf))) {
    debug_printf("<ERR> setsockopt SO_SNDBUF\n");
  }
sendBuf = 65539; //The maximum IP packet has 64KB or 65535 B. The maximum UDP if (setsockopt(udpEchoSocket, SOL_SOCKET, SO_RCVBUF, &sendBuf, sizeof(sendBuf))) {
    debug_printf("<ERR> setsockopt SO_RCVBUF\n");
  }


I tried both ways (first change eCos sources, then use the ioctl calls), and both worked for me: I could send/receive up to 64kB IP (UDP and TCP) packets.

Kind regards,
Jürgen

Kind regards,
Jürgen

On 05/04/2017 02:55 AM, lawshere@gmail.com wrote:
is there any patch for it,
no matter how i set SNDBUF, the problem is still,
it seems the maximum accessable size for one udp packet is the same as MTU.

在 2007年6月12日星期二 UTC+8下午11:49:30,Jürgen Lambrecht写道:

    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).
    I don't know if this is a bug in ecos, or a (hidden?) limitation
    of an
    embedded OS.

    Thanks,
    Juergen Lambrecht

    P.S.:
    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....

    --     Jürgen Lambrecht
    R&D Engineer
    Televic Transport Systems
http://www.televic.com
    Televic NV / SA (main office)
    Leo Bekaertlaan 1
    B-8870 Izegem
    Tel: +32 (0)51 303045
    Fax: +32 (0)51 310670


    --     Before posting, please read the FAQ:
http://ecos.sourceware.org/fom/ecos
<http://ecos.sourceware.org/fom/ecos>
    and search the list archive:
http://ecos.sourceware.org/ml/ecos-discuss
<http://ecos.sourceware.org/ml/ecos-discuss>





--
Jürgen Lambrecht
R&D Associate
Mobile: +32 499 644 531
Twitter: JGRLambrecht
Tel: +32 (0)51 303045    Fax: +32 (0)51 310670
http://www.televic-rail.com
https://www.facebook.com/TelevicRail
Televic Rail NV - Leo Bekaertlaan 1 - 8870 Izegem - Belgium
Company number 0825.539.581 - RPR Kortrijk

This electronic transmission is intended exclusively for the person or entity
to whom it is addressed and may contain confidential and/or privileged
material. Any disclosure, copying, distribution or other action based upon the
information by persons or entities other than the intended recipient is
prohibited. All e-mail correspondence from Televic Rail NV is only intended for
information purposes and can not result in contractual obligations. Commitments
under Televic Rail NV can only occur through regular exchange of letters,
signed by authorized persons in accordance with publication in the Belgian
Official Gazette.


--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


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