IPv6 support with NDIS 5.1 miniport driver

Hi.

I have an NDIS 5.1 miniport driver, and I am trying to understand if NDIS 5.1 is capable of supporting IPv6 protocol. I searched the MSDN, but could not find any documentation regarding IPv6 with NDIS 5.1. My questions are:

  1. Can I support IPv6 with an NDIS 5.1 driver, or should I port the driver to using NDIS 6.0?
  2. Is IPv6 supported in XP?

Thanks in advance for the help!
S.

> Hi.

I have an NDIS 5.1 miniport driver, and I am trying to understand if
NDIS 5.1
is capable of supporting IPv6 protocol. I searched the MSDN, but could
not
find any documentation regarding IPv6 with NDIS 5.1. My questions are:

  1. Can I support IPv6 with an NDIS 5.1 driver, or should I port the
    driver to
    using NDIS 6.0?
  2. Is IPv6 supported in XP?

I am using IPv6 on XP right now, so I guess that answers the other
questions too. The XP IPv6 stack is available from Microsoft as a
separate download (or at least it was when I downloaded it but that was
a while ago) and it’s a bit immature compared to the likes of Vista and
7, but it is definitely supported.

James

NDIS 5.x supports arbitrary protocols and yes, MSFT did ship an IPv6 implemenation for Windows XP / Server 2003.

Start here:

http://technet.microsoft.com/en-us/network/bb530961.aspx

I believe the IPv6 stack was originally part the “Advanced Networking Pack” or some such and then slip-streamed into XP SP? (SP1? SP2?) and thus if your XP system has not been under a rock and powered off for the past decade, it probably has it on it waiting to be enabled. And then possibly disabled. Both are covered in this article.

http://support.microsoft.com/kb/817778

Have Fun,

Dave Cattley

Date: Mon, 24 May 2010 08:30:25 -0400
From: xxxxx@gmail.com
To: xxxxx@lists.osr.com
Subject: [ntdev] IPv6 support with NDIS 5.1 miniport driver

Hi.

I have an NDIS 5.1 miniport driver, and I am trying to understand if NDIS 5.1 is capable of supporting IPv6 protocol. I searched the MSDN, but could not find any documentation regarding IPv6 with NDIS 5.1. My questions are:

  1. Can I support IPv6 with an NDIS 5.1 driver, or should I port the driver to using NDIS 6.0?
  2. Is IPv6 supported in XP?

Thanks in advance for the help!
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

To add what other has said…
Miniport is designed to support arbitrary transport protocol. So yes, ndis
n.x (where 2<=n<=6, and perhaps for n>6 too) miniport supports basic ipv6.
However, to support HW accelerated features related to IPv6, LSO over IPv6,
tcp over IPV6 checksum offload, TCP over ipv6 chimney offload, then you need
a ndis6x miniport.

Calvin

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@gmail.com
Sent: Monday, May 24, 2010 5:30 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] IPv6 support with NDIS 5.1 miniport driver

Hi.

I have an NDIS 5.1 miniport driver, and I am trying to understand if NDIS
5.1 is capable of supporting IPv6 protocol. I searched the MSDN, but could
not find any documentation regarding IPv6 with NDIS 5.1. My questions are:

  1. Can I support IPv6 with an NDIS 5.1 driver, or should I port the driver
    to using NDIS 6.0?
  2. Is IPv6 supported in XP?

Thanks in advance for the help!
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

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.

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

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:

  1. 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.
  2. 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

Hello Jeffrey,

Thank you for the input, it’s clear know.

Best Regards,
S.