none
NDIS flow control RRS feed

  • Question

  • I am developing a NDIS Intermediate Miniport which also implements a protocol of its own.

    Currently i queue the packets that i want to be sent as responses, but i don't know when it's the right time to flush my queue. Is there some status indication from the miniport below that i can send packets? If yes, which one?

    Thursday, March 27, 2014 10:46 PM

Answers

  • The model here is to just send the packets immediately, and let the lower level NIC worry about queuing. Your protocol's ability to send is not governed by any explicit queue depth or backpressure notification.

    (Backpressure on the local link eventually comes from NBL exhaustion: if all your TX NBLs are queued in the NIC, you can't send any more.  But in practice this isn't likely to happen unless your TX NBL pool is tiny.)

    Friday, March 28, 2014 6:02 PM

All replies

  • The model here is to just send the packets immediately, and let the lower level NIC worry about queuing. Your protocol's ability to send is not governed by any explicit queue depth or backpressure notification.

    (Backpressure on the local link eventually comes from NBL exhaustion: if all your TX NBLs are queued in the NIC, you can't send any more.  But in practice this isn't likely to happen unless your TX NBL pool is tiny.)

    Friday, March 28, 2014 6:02 PM
  • We did in prior versions as you say. In practice, however, there are NICs that can't accept sends when in the receive indication phase. So we introduced the queue and are flushing it in ReceiveComplete().

    But it seems that at least some NICs don't call ReceiveComplete()... :(

    So we wonder what might be a decent solution?

    Saturday, March 29, 2014 9:22 AM