Re: sync/async NdisTransferData()



Let's assume that NdisTransferData() call has begun.
This NdisTransferData() returns NDIS_STATUS_PENDING
and NIC driver is doing some work and is going to call
ProtocolTransferDataComplete().
question:
In this moment,
is possible that next received packet is indicated to ProtocolReceive() by
NIC driver
before previous packet ProtocolTransferDataComplete() ?
(between returning NdisTRansferData() and calling
ProtocolNdisTransferDataComplete() )

Thanks !
Peter
"Stephan Wolf [MVP]" wrote:

On Thu, 7 Apr 2005 17:09:05 +0400, "Maxim S. Shatskih"
<maxim@xxxxxxxxxxxxxxxx> wrote:

DMA NIC drivers usually use the packet-based indication path, and thus no
TransferData at all.

"Usually", yes. But I have written NDIS miniport drivers for NICs that
do use DMA and still need to do their DMA transfers asynchronously.
True for all slave DMA devices by design (ISA/EISA), but also for some
DMA busmaster devices where each DMA transfer needs to be explicitly
initiated by software (at the time the data is already available in
some internal FIFO).

This is in contrast to most (if not all) modern NICs, which are DMA
busmasters (PCI). These devices use DMA descriptor lists and buffers
that the software passes to them in advance. So the NIC can decide
when to initiate a DMA transfer for a received packet.

Stephan

.



Relevant Pages

  • Re: sync/async NdisTransferData()
    ... Let's assume that NdisTransferData() call has begun. ... and NIC driver is doing some work and is going to call ... before previous packet ProtocolTransferDataComplete()? ... > do use DMA and still need to do their DMA transfers asynchronously. ...
    (microsoft.public.development.device.drivers)
  • Re: Is it possible to bridge three NIC on a Windows 2000 Server
    ... > Where can I get a teaming NIC driver for all those NIC cards? ... There may be an add-on driver for random NICs, ... >>> multiple NIC cards on the server, you can Send Data and Retrieve data ...
    (microsoft.public.win2000.networking)
  • Re: [PATCH] MII bus API for PHY devices
    ... if the mii bus driver uses it's own timers, ... nics will be more difficult. ... For a nic driver, ... The internal phy is partially visible on the external ...
    (Linux-Kernel)
  • Re: sync/async NdisTransferData()
    ... >DMA NIC drivers usually use the packet-based indication path, ... do use DMA and still need to do their DMA transfers asynchronously. ... This is in contrast to most modern NICs, ...
    (microsoft.public.development.device.drivers)
  • [RFC] irqbalance: Mark in-kernel irqbalance as obsolete, set to N by default
    ... keeps swapping irq's for NICs from cpu to cpu causing extremely high network latency. ... Another NIC driver already has severe warnings in their documentation file against using CONFIG_IRQBALANCE, but this is a general problem for all NIC drivers and other subsystems. ... I suggest that the in-kernel irqbalance is phased out, by marking it OBSOLETE first and removing the code later. ...
    (Linux-Kernel)