[ECOS] Re: Urgent Help: ether_demux function

mkhoyila@uci.edu mkhoyila@uci.edu
Tue Sep 20 03:38:00 GMT 2005


Hi Gary and Andew,

I can see what the issue is, but I do not know how to solve. From my dsr I
call:

while ( !(pDevCtrl->rxBds[pDevCtrl->rxHeadIndex].status & DMA_OWN)
	(sc->funs->eth_drv->recv)(sc, pDevCtrl .....);

this loops through as long as packets are coming and I checked from
eth_drv.c the function ether_input.c is being called which calls
ether_demux.

ether_demux queue them in ip_input queue and schedule a software interrupt
for ipintr to pick up the packets in the queue. if packets are coming
beyond 100 packets/sec, then software interrupt is NOT generated and after
first 50 packets received, all are dropped. ipintr is called at the end
and at that time only first 50 packets are in the queue.

Need help please. Thanks.

Michael


> On Fri, Sep 16, 2005 at 12:35:08PM -0700, mkhoyila@uci.edu wrote:
>> I know that it is dropping packets because IF_QFULL(inq) is full. This
>> does not seem correct to me since eCos should handle more traffic than
>> 100
>> packets/sec.
>>
>> Is there any issue with the driver or need to turn something on to make
>> this happen.
>>
>> Thanks.
>>
>> michael
>>
>> ---------------------------- Original Message
>> ----------------------------
>> Subject: ether_demux function
>> From:    mkhoyila@uci.edu
>> Date:    Fri, September 16, 2005 12:10 pm
>> To:      ecos-discuss@ecos.sourceware.org
>> --------------------------------------------------------------------------
>>
>> Hi Gary,
>>
>> Do you have any idea, why ether_demux drops packets when more than 100
>> packet per second are sent via the driver (with 100 packets/sec with
>> length of 60bytes each, no issues). Basically it only allows exactly 50
>> packets thru and drops the rest. Thanks.
>
> You need to find out why the queue is overflowing. What is supposed to
> take packets out of the queue? Why is it not? It sounds like a problem
> with the transmit functions in your ethernet driver.
>
>         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



More information about the Ecos-discuss mailing list