NDIS miniport data synchronization question...

The MSDN documentation for a NDIS miniport MiniportSendNetBufferLists()
function states:

“The order of the linked list of NET_BUFFER_LIST structures that NDIS
passes at NetBufferLists represents the order in which the miniport
driver should transmit the network data. In addition, a miniport driver
should send the NET_BUFFER_LIST structures from multiple
MiniportSendNetBufferLists calls in the order in which the miniport
driver received the structures.”

Does this mean to imply an order to NdisMSendNetBufferListsComplete()?

IOW, does the upper stack expect an order in completions?

(My miniport sends out NBLs in order, however it may report completed
NBLs out-of-order. Is this an issue?)

Thx,
-PWM

It should be fine to complete the NBLs in any order convenient.

Any protocol (sender) that is relying on some sort of completion order is
asking for trouble.

Cheers,
Dave Cattley

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Peter W. Morreale
Sent: Monday, March 01, 2010 5:12 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] NDIS miniport data synchronization question…

The MSDN documentation for a NDIS miniport MiniportSendNetBufferLists()
function states:

“The order of the linked list of NET_BUFFER_LIST structures that NDIS
passes at NetBufferLists represents the order in which the miniport
driver should transmit the network data. In addition, a miniport driver
should send the NET_BUFFER_LIST structures from multiple
MiniportSendNetBufferLists calls in the order in which the miniport
driver received the structures.”

Does this mean to imply an order to NdisMSendNetBufferListsComplete()?

IOW, does the upper stack expect an order in completions?

(My miniport sends out NBLs in order, however it may report completed
NBLs out-of-order. Is this an issue?)

Thx,
-PWM


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

On Mon, 2010-03-01 at 17:56 -0500, David R. Cattley wrote:

It should be fine to complete the NBLs in any order convenient.

Any protocol (sender) that is relying on some sort of completion order is
asking for trouble.

Hurumph. Trouble is what I have. One benchmark I am using, netperf,
fails to exit properly. netperf in this instance is pure tx load.

(netperf under other virt. technologies exits properly)

I seem to have a race as if I add a debug trace msg to the miniport’s
*sendNetBufs() routine, netperf will exit properly. The only race I
have come up with to date is out-of-order NBL completions.

I can write to shares with no problem and Explorer seems happy as well.
I haven’t yet run through the WLK test suite, was about to when I found
this issue.

WRT the netperf test, after the failure, the stack seems to go awry and
can be cleared by having the troubleshooter go through diagnostics and
reset the adapter.

Where can I find protocol stack log files?

Thanks,
-PWM

Cheers,
Dave Cattley

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Peter W. Morreale
Sent: Monday, March 01, 2010 5:12 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] NDIS miniport data synchronization question…

The MSDN documentation for a NDIS miniport MiniportSendNetBufferLists()
function states:

“The order of the linked list of NET_BUFFER_LIST structures that NDIS
passes at NetBufferLists represents the order in which the miniport
driver should transmit the network data. In addition, a miniport driver
should send the NET_BUFFER_LIST structures from multiple
MiniportSendNetBufferLists calls in the order in which the miniport
driver received the structures.”

Does this mean to imply an order to NdisMSendNetBufferListsComplete()?

IOW, does the upper stack expect an order in completions?

(My miniport sends out NBLs in order, however it may report completed
NBLs out-of-order. Is this an issue?)

Thx,
-PWM


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

I don’t know of any “protocol stack log file”. If there is information, it
may be in the system event logs.

One suggestion is to install a checked version of NDIS and TCP/IP then run
under the debugger.

The NDIS debugger extensions (NDISKD) may help turn on interesting NDIS
logs. There probably are tools to turn on more TCP/IP debugging features but
I have never used them.

Of course, introduction of these two checked drivers may alter timing so the
problem doesn’t show.

FWIW,

Thomas F. Divine


From: “Peter W. Morreale”
Sent: Monday, March 01, 2010 6:14 PM
To: “Windows System Software Devs Interest List”
Subject: RE: [ntdev] NDIS miniport data synchronization question…

> On Mon, 2010-03-01 at 17:56 -0500, David R. Cattley wrote:
>> It should be fine to complete the NBLs in any order convenient.
>>
>> Any protocol (sender) that is relying on some sort of completion order is
>> asking for trouble.
>>
>
> Hurumph. Trouble is what I have. One benchmark I am using, netperf,
> fails to exit properly. netperf in this instance is pure tx load.
>
> (netperf under other virt. technologies exits properly)
>
> I seem to have a race as if I add a debug trace msg to the miniport’s
> *sendNetBufs() routine, netperf will exit properly. The only race I
> have come up with to date is out-of-order NBL completions.
>
> I can write to shares with no problem and Explorer seems happy as well.
> I haven’t yet run through the WLK test suite, was about to when I found
> this issue.
>
> WRT the netperf test, after the failure, the stack seems to go awry and
> can be cleared by having the troubleshooter go through diagnostics and
> reset the adapter.
>
> Where can I find protocol stack log files?
>
> Thanks,
> -PWM
>
>
>> Cheers,
>> Dave Cattley
>>
>> -----Original Message-----
>> From: xxxxx@lists.osr.com
>> [mailto:xxxxx@lists.osr.com] On Behalf Of Peter W. Morreale
>> Sent: Monday, March 01, 2010 5:12 PM
>> To: Windows System Software Devs Interest List
>> Subject: [ntdev] NDIS miniport data synchronization question…
>>
>>
>> The MSDN documentation for a NDIS miniport MiniportSendNetBufferLists()
>> function states:
>>
>> “The order of the linked list of NET_BUFFER_LIST structures that NDIS
>> passes at NetBufferLists represents the order in which the miniport
>> driver should transmit the network data. In addition, a miniport driver
>> should send the NET_BUFFER_LIST structures from multiple
>> MiniportSendNetBufferLists calls in the order in which the miniport
>> driver received the structures.”
>>
>> Does this mean to imply an order to NdisMSendNetBufferListsComplete()?
>>
>> IOW, does the upper stack expect an order in completions?
>>
>> (My miniport sends out NBLs in order, however it may report completed
>> NBLs out-of-order. Is this an issue?)
>>
>> Thx,
>> -PWM
>>
>>
>>
>>
>> —
>> NTDEV is sponsored by OSR
>>
>> For our schedule of WDF, WDM, debugging and other seminars visit:
>> http://www.osr.com/seminars
>>
>> To unsubscribe, visit the List Server section of OSR Online at
>> http://www.osronline.com/page.cfm?name=ListServer
>>
>>
>> —
>> NTDEV is sponsored by OSR
>>
>> For our schedule of WDF, WDM, debugging and other seminars visit:
>> http://www.osr.com/seminars
>>
>> To unsubscribe, visit the List Server section of OSR Online at
>> http://www.osronline.com/page.cfm?name=ListServer
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer

On Mon, 2010-03-01 at 19:01 -0500, Thomas F. Divine wrote:

I don’t know of any “protocol stack log file”. If there is information, it
may be in the system event logs.

Thank you Thomas.

How do I check the “system event logs”?

Thanks,
-PWM

Select your “My Computer” Icon and right-click. Select Management from the
Context Menu. You should be able to navigate from the choices available
there.

Thomas F. Divine
http://www.pcausa.com


From: “Peter W. Morreale”
Sent: Monday, March 01, 2010 7:39 PM
To: “Windows System Software Devs Interest List”
Subject: Re: [ntdev] NDIS miniport data synchronization question…

> On Mon, 2010-03-01 at 19:01 -0500, Thomas F. Divine wrote:
>> I don’t know of any “protocol stack log file”. If there is information,
>> it
>> may be in the system event logs.
>>
>
> Thank you Thomas.
>
> How do I check the “system event logs”?
>
> Thanks,
> -PWM
>
>
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer