This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: XXXX_RECV multiple packet receipt
- From: Gary Thomas <gary at mlbassoc dot com>
- To: mkhoyila at uci dot edu
- Cc: eCos Discussion <ecos-discuss at ecos dot sourceware dot org>
- Date: Fri, 02 Sep 2005 16:28:56 -0600
- Subject: Re: [ECOS] XXXX_RECV multiple packet receipt
- References: <56180.63.87.1.243.1125284222.squirrel@webmail.uci.edu> <1125306497.28508.350.camel@hermes> <38449.63.87.1.243.1125699833.squirrel@webmail.uci.edu>
On Fri, 2005-09-02 at 15:23 -0700, mkhoyila@uci.edu wrote:
> Gentlemen,
>
> In some cases when a single receive interrupt happens, I get multiple
> packets sitting in my Receive Buffers (multiple rxBuffers filled, each
> buffer corresponds to one received packet). Is it possible to receive
> these packets with a single call to eth_drv_dsr() which eventually
> XXXX-Recv will be called?
>
> I would like to take advantage of having multiple buffers and receiving
> all at the same time for performance reasons.
>
Yes, this works just fine. In your DSR handler, simply call
eth_drv_recv() for every packet that you have buffered up.
> I would appreciate your response to my earlier email regarding zero-copy
> in XXXX_Recv function as well. Thank you.
This is a much harder problem and, sadly, with the current upper
layer design, there is no way to accomplish it at this time. It
would require a fairly significant restructuring of the middle
layer (eth_drv) which sits between the stacks and the hardware
drivers.
--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss