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: eth_drv_tx_done() question


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]