Miniports operate at layer 2 of the network stack. IPv6 is a layer 3 protocol. Because the network stack is cleanly layered, your miniport does not “know” about the protocol above it. So your miniport can run any protocol [that is compatible with your binding interface].
What you probably read about, and what has gotten you confused, are these two facts:
- NDIS has several performance-enhancing offloads for IP protocols, like large send offload (LSO). NDIS6 brings parity to the IPv6 suite of protocols for these offloads, so that any offload for IPv4 has an equivalent for IPv6 (except IP header checksums :). Of course, these enhancements don’t have any effect unless your hardware supports them. But you also need to use NDIS6 APIs to expose the functionality to the OS.
- The TCPIP stack was rewritten for Windows Vista. The new stack has IPv4 and IPv6 integrated together. This new stack also happens to use the NDIS 6.xx programming API. However, thanks to NDIS’s version-translation support, even old 4.x or 5.x miniports still work with it.
So in summary:
- An NDIS 5.1 [Ethernet] miniport can function at a basic level with IPv4, IPv6, and any other [Ethernet-compatible] protocol out there.
- If your hardware supports sophisticated performance-enhancing offloads, like Large Send Offload, you need to use NDIS 6.xx to expose them to the OS’s IPv6 stack.
- 6 is a bigger number than 5. Not coincidentally, the NDIS 6.xx interface is an improvement on NDIS 5.x, and I advise you to plan on migrating to NDIS 6.xx. NDIS 5 is officially deprecated, and we won’t add new features to it.
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Thomas F. Divine
Sent: Tuesday, May 25, 2010 9:08 AM
To: Windows System Software Devs Interest List
Subject: Re: RE:[ntdev] IPv6 support with NDIS 5.1 miniport driver
You cannot modify a NDIS 5 driver to “turn it into” a NDIS 6 driver.
You must write a NDIS 6 driver.
On the other hand, what specific NDIS 6 features do you really require?
Saying that you “want IPv6 support” doesn’t mean anything really. Windows XP includes IPv6 support if the IPv6 transport is installed. A NDIS 5 driver will filter IPv6 packets on Windows XP as well as on Windows Vista and later.
So, I don’t think that “IPv6” support isn’t really the right thing to ask about since NDIS 5 IM filters do that job quite well on any current platform.
Whatever you really are requiring isn’t clear to me - and perhaps others.
Thomas F. Divine
http://www/pcausa.com
From:
Sent: Tuesday, May 25, 2010 11:27 AM
To: “Windows System Software Devs Interest List”
Subject: RE:[ntdev] IPv6 support with NDIS 5.1 miniport driver
> Hi Calvin,
>
> Thanks for reply. According to MSDN, only NDIS 6 has native support
> for IPv6. Can you point me to any reference (in msdn or elsewhere) for
> adding
> IPv6 support in NDIS 5.1 miniports? Which functionality should I
> implement as a miniport driver?
>
> Thanks,
> S.
>
>
> —
> 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