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]
Other format: [Raw text]

Re: Fwd: Packet size limit on TCP/IP stack ?


> ??? wrote:
> >
> > Hi, all
> >
> > I'm making a simple application using "net" option of package.(FreeBSD
> > TCP/IP, CVS latest eCos)
> >
> > But, I found that the  TCP user data which is over 98 bytes cannot be
> > sent from or into target board. (target is ARM INTEGRATOR with ARM920T)
> >
> > When it comes to the Ping test, it also shows that ping packet with
> > data size of over 119 bytes cannot be sent.
> >
> > If the packet size is larger than the size, program contorl is stuck on
> > sendto or send.
> >
> > This happens on both IPv4 and IPv6 stack.
> >
> > Does eCos TCP/IP stack limit the packet size? or did I missed out some
> > option from CDL?
>
> This would be quite a big problem if widespread, which probably makes it
> something specific to your situation.
>
> Run "ecosconfig export foo.ecm" in the same directory as your .ecc to
> generate a foo.ecm file that will show you what options are different from
> the default (although a few of them e.g. for header files get set
> automatically in the net template).
>
> Jifl
> --

Well, I did not find any solution but a little details on this behaviour.
Regarding following two lines in file i82559.c in function TxMachine (The
hardware is same as above)

        OUTL(VIRT_TO_BUS(p_txcb), ioaddr + SCBPointer);
        OUTW(CU_START, ioaddr + SCBCmd);

when I see data starting from p_txcb I find it correct in both cases (first
sending total packet size less then or equal to160 and later total packet
size more than 160). This are first 16 bytes starting from p_txcb for total
packet length of 200. (by total packet length, I mean including ethernet, ip
headers)
(gdb)x/16xb p_txcb
0xf333cc: 0x00 0x00 0x04 0xe0 0xcc 0x3c 0xf3 0x80
0xf33cd4: 0xff 0xff 0xff 0xff 0xc8 0x80 0x10 0x00
(gdb)p /x p_txcb
0xf33ccc

pressing command next at line OUTW(CU_START, ioaddr + SCBCmd) sends packet
out if  packet length is less than 160 but does not send if packet lengh is
more than 160. Is it possible that addresses (p_txcb + 160) onwards are
somehow invalid?

Regards
Mohanlal

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


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