This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: eth_drv_tx_done() question
- From: Gary Thomas <gthomas at redhat dot com>
- To: Jani Monoses <jani at iv dot ro>
- Cc: eCos Discussion <ecos-discuss at sources dot redhat dot com>
- Date: 18 Apr 2002 07:05:07 -0600
- Subject: Re: [ECOS] eth_drv_tx_done() question
- References: <Pine.LNX.4.33L2.0204181545040.5260-100000@cow>
On Thu, 2002-04-18 at 06:53, Jani Monoses wrote:
> Hi
>
> is it OK to not wait for acknowledge (through eth_drv_tx_done() ) after
> sc->send() ?
> As I see it this is required only if eth_drv uses packet specific data
> and needs to know when it can be deallocated.
> In the standalone driver there is a wait for that retransmission but
> nothing is done differently even if that wait times out (packet not sent)
> Is this only for flow control in redboot?
> The reason I am asking this is that in the lwip specific eth_drv I think
> I don't need to know when a packet is transmitted since the stack itself
> takes care of retransmissions.It works without this wait but I want to
> know I am not missing something.
The reason for this is so that the physical driver may possibly use the
actual resources provided by the logical driver. The 'done' operation is
primarily then to let the logical layer know that those resources can
be reused.
For example (and I know none of our drivers do this yet, but), the physical
driver could simply tell the hardware where the buffer parts are directly
from the scatter-gather list, reducing buffer/data copying. The logical
driver can't assume that it can reuse those buffers until the physical
driver indicates that it's through with them, which in the current scheme
is when the interrupt comes along.
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss