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 ?


> > I enabled DEBUG macro for i82559.c. Driver seems to working fair. All
the
> > packets are transmitted well by driver but only packets having length
less
> > than 160 are reaching to other end. Apparently there is no problem in
> > receiving packet of length more than 160. Problem occurs at transmission
> > time only. Any clue in this regard is appreciated.
>
> A few things to try. For the moment i'm assuming the software is OK
> and its a hardware/configuration problem.
Some observations to be noted here: I have ARM Integrator board and i82559
network interface. On the same board, I have one wireless interface. I am
able to send any size packet over wireless interface but not with i82559.
Then I have one intel x86 machine having i82559 interface and there also I
am able to send any size packet. The problem is with Integrator board and
i82559 combination.

> Check to see if there are  any runt packets on the network.
No, I don't see any runt packets. Packets of size less than 160 appears well
and packets of size more than 160 does not appear at all.

> The i82559 does a TX by first
> prefilling the TX fifo with part of the packet. It then starts the TX
> using what it has already in the fifo and getting the rest of the
> packet from memory as quick as it can. I've had a problem with a
> broken PCI arbiter which resulted in the transfer from main memory
> being too slow and the i82559 sent all it had in its fifo while the
> rest of the packet was still being DMAed from main memory. The i82559
> then has to abort the packet. There is a register that controls how
> much it should prefill the fifo with. Try increasing the prefill.
You mean packets are being DMAed from driver transmission rings to network
card memory? I did look into i82559_configure function. There it seems to
configuring the device. I see array config_bytes in this function is filled
and later (in same function) device reads this array to configure itself.
Unfortunately I do not have i82559 manual available so I don't know which
byte is doing what. Is it  possible that prefill is zero? Because this could
be reason that I don't see runt packets and it is taking much time to DMA
packets of length more than 160. Could you please tell me how to change
prefill value?

> Are you running it at 100Mbit/s or 10? Try forcing it to 10 and see if
> that makes a difference. At 10 it gives it more time to get the packet
> from main memory.
I am running at 100Mbit/s. Again, I think this is configured in
i82559_configure. Please let me know how to change this.

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]