RSS and NDIS5.1

I’m looking at implementing RSS in my PV drivers for Xen. They are
currently NDIS5.1, and according to “The Microsoft Windows Server 2003
Scalable Networking Pack release” docs, Windows 2003 supports RSS which
says to me that it should be possible using my NDIS5.1 miniport driver.

Everything I look up in the DDK docs for RSS talks about NDIS6.0 and
beyond though… what’s with that? Does the Scalable Networking Pack
have its own docs?

I’m using NDIS5.1 because I support Windows 2000 (which is actually
NDIS5.0 but works with a few #ifdef’s etc), and haven’t yet found a good
reason to start maintaining two different sources

Thanks

James

IIRC, the package that came with SNP used to have the relevant docs. And to support some NDIS related stuff needed to be installed.

-pro

On Mar 13, 2011, at 5:40 PM, James Harper wrote:

I’m looking at implementing RSS in my PV drivers for Xen. They are
currently NDIS5.1, and according to “The Microsoft Windows Server 2003
Scalable Networking Pack release” docs, Windows 2003 supports RSS which
says to me that it should be possible using my NDIS5.1 miniport driver.

Everything I look up in the DDK docs for RSS talks about NDIS6.0 and
beyond though… what’s with that? Does the Scalable Networking Pack
have its own docs?

I’m using NDIS5.1 because I support Windows 2000 (which is actually
NDIS5.0 but works with a few #ifdef’s etc), and haven’t yet found a good
reason to start maintaining two different sources

Thanks

James


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

>

IIRC, the package that came with SNP used to have the relevant docs.
And to
support some NDIS related stuff needed to be installed.

I extracted the package and can’t see any docs in there. The MSKB page
http://support.microsoft.com/kb/912222 has an RSS doc to download but
it’s titled RSS_Server2008.docx and seems to refer to NDIS6.0. All the
links I’m clicking on in that document go to a ‘Content Removed’ page.

Is it NDIS5.2 that I’m looking for?

James

>

>
> IIRC, the package that came with SNP used to have the relevant docs.
And to
> support some NDIS related stuff needed to be installed.
>

I extracted the package and can’t see any docs in there. The MSKB page
http://support.microsoft.com/kb/912222 has an RSS doc to download but
it’s titled RSS_Server2008.docx and seems to refer to NDIS6.0. All the
links I’m clicking on in that document go to a ‘Content Removed’ page.

Is it NDIS5.2 that I’m looking for?

I just found the “SNPWhitepaper.doc” document, and it has a link to
www.microsoft.com/snp but when I go there I get an unhelpful page not
found page. I guess the SNP stuff for 2003 has suffered from bitrot over
time.

James

I think it is ndis 5.2 where the RSS support started !

-pro

On Mar 13, 2011, at 9:01 PM, James Harper wrote:

>
>>
>> IIRC, the package that came with SNP used to have the relevant docs.
> And to
>> support some NDIS related stuff needed to be installed.
>>
>
> I extracted the package and can’t see any docs in there. The MSKB page
> http://support.microsoft.com/kb/912222 has an RSS doc to download but
> it’s titled RSS_Server2008.docx and seems to refer to NDIS6.0. All the
> links I’m clicking on in that document go to a ‘Content Removed’ page.
>
> Is it NDIS5.2 that I’m looking for?
>

I just found the “SNPWhitepaper.doc” document, and it has a link to
www.microsoft.com/snp but when I go there I get an unhelpful page not
found page. I guess the SNP stuff for 2003 has suffered from bitrot over
time.

James


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

No RSS for ndis5.1.

ndis5.2 is the least NDIS version that supports RSS. It’s part of SNP which
is an addition to w2k3 server. The SNP also shipped with a “fancy” tcpip.sys
that knows about RSS, TOE and perhaps IOAT. It’s a funny hybrid model. i.e.
for TOE traffic, you use NBL and Ndis_packet for others.

In order for RSS to work, the hardware must be capable of performing certain
types of RX traffic steering in defined behaviors. The level of HW rss
support may vary. It’s all described in the DDK doc(>= 6000). For w2k3, the
ndis5.2 DDK doc and lib could be obtained from Microsoft back then. You
could try.

Good luck!
Calvin

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of James Harper
Sent: Sunday, March 13, 2011 9:01 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] RSS and NDIS5.1

>
> IIRC, the package that came with SNP used to have the relevant docs.
And to
> support some NDIS related stuff needed to be installed.
>

I extracted the package and can’t see any docs in there. The MSKB page
http://support.microsoft.com/kb/912222 has an RSS doc to download but
it’s titled RSS_Server2008.docx and seems to refer to NDIS6.0. All the
links I’m clicking on in that document go to a ‘Content Removed’ page.

Is it NDIS5.2 that I’m looking for?

I just found the “SNPWhitepaper.doc” document, and it has a link to
www.microsoft.com/snp but when I go there I get an unhelpful page not
found page. I guess the SNP stuff for 2003 has suffered from bitrot over
time.

James


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

>

No RSS for ndis5.1.

ndis5.2 is the least NDIS version that supports RSS. It’s part of SNP
which
is an addition to w2k3 server. The SNP also shipped with a “fancy”
tcpip.sys
that knows about RSS, TOE and perhaps IOAT. It’s a funny hybrid model.
i.e.
for TOE traffic, you use NBL and Ndis_packet for others.

As much as I look I can’t find any details about the details necessary
to actually make it work (eg .h files and API descriptions).

In order for RSS to work, the hardware must be capable of performing
certain
types of RX traffic steering in defined behaviors. The level of HW rss
support may vary.

From a look at the overview docs that do exist, it appears that for
hardware with a single queue (eg mine) I should:

  1. Gather buffer chains from the comms ring in the DPC
  2. Sort them into per-cpu list based on hashes of the header details
  3. Schedule DPC’s on each CPU required (except for the current CPU which
    can just keep processing)

The difference being that an real adapter with actual hash based
hardware queues could use MSI to interrupt the right CPU etc and save
the first two steps above.

James