Driver Problems? Questions? Issues?
Put OSR's experience to work for you! Contact us for assistance with:
  • Creating the right design for your requirements
  • Reviewing your existing driver code
  • Analyzing driver reliability/performance issues
  • Custom training mixed with consulting and focused directly on your specific areas of interest/concern.
Check us out. OSR, the Windows driver experts.

Monthly Seminars at OSR Headquarters

East Coast USA
Windows Internals and SW Drivers, Dulles (Sterling) VA, 9 April 2018

Writing WDF Drivers I: Core Concepts, Manchester, NH, 7 May 2018

Kernel Debugging & Crash Analysis for Windows, Manchester, NH, 21 May 2018


Go Back   OSR Online Lists > ntdev
Welcome, Guest
You must login to post to this list
  Message 1 of 2  
15 Apr 18 01:26
Shashank Ram
xxxxxx@gmail.com
Join Date: 21 Sep 2016
Posts To This List: 47
Queuing packets in NDIS IM driver receive path for optimal performance

Hi, I wanted to understand what is the best way to optimize performance on the receive path of an NDIS IM Mux driver. The NDIS IM sits between the NIC's miniport driver and TCP/IP, and processes the packets. On the receive path, since it is possible to receive multiple NBLs, how should the ProtocolReceiveXXX() callback process the receive NBL chain asynchronously? The protocol edge needs to pass over the received packets to my packet processing logic before it indicates the frames to upper layers. However, since multiple NBLs can be present in the receive path and because each packet can be processed differently, how are these supposed to be handled for best performance? Should the packets be indicated individually after being individually processed, or should they be linked back and indicated in a list together? Moreover, how can this be made asynchronous from the ProtocolReceiveXXX() function? Thanks!
  Message 2 of 2  
18 Apr 18 00:07
Shashank Ram
xxxxxx@gmail.com
Join Date: 21 Sep 2016
Posts To This List: 47
Queuing packets in NDIS IM driver receive path for optimal performance

Does the receive throttling apply to NDIS IM drivers too? https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/content/ndis/ns-ndi s-_ndis_receive_throttle_parameters In MUX IM, what is the correct way to queue packets in the ProtocolReceiveXXX callback routine? The Protocol edge ends up looking up the MAC in the NBL and ends up forwarding it to the appropriate miniport for indication. It is possible that only a subset of received NBLs need to be indicated after processing, so I would like to queue these for a bounded time. What is this bounded time for IM drivers?
Posting Rules  
You may not post new threads
You may not post replies
You may not post attachments
You must login to OSR Online AND be a member of the ntdev list to be able to post.

All times are GMT -5. The time now is 08:33.


Copyright ©2015, OSR Open Systems Resources, Inc.
Based on vBulletin Copyright ©2000 - 2005, Jelsoft Enterprises Ltd.
Modified under license