[ECOS] Fwd: Packet size limit on TCP/IP stack ?

Jonathan Larmour jifl@eCosCentric.com
Fri Sep 5 14:03:00 GMT 2003


mohanlal jangir wrote:
> 
>         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?

Certainly could... you should examine your PCI window setup. InitTxRing() 
allocates these buffers from the PCI window. Perhaps the memory is 
corrupted, or overlaps with something else. i.e. look at 
CYGHWR_INTEL_I82559_PCI_MEM_MAP_SIZE and 
CYGHWR_INTEL_I82559_PCI_MEM_MAP_BASE. And of course your MMU setup (see if 
there are any special properties of the address at (start of packet + 160).

Jifl
-- 
eCosCentric    http://www.eCosCentric.com/    The eCos and RedBoot experts
--["No sense being pessimistic, it wouldn't work anyway"]-- Opinions==mine


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



More information about the Ecos-discuss mailing list