Windows Vista Tips

Windows Vista Tips > Newsgroups > Windows Vista Drivers > 802.1q/p and NDIS 5.1 Intermediate driver

Reply
Fix Vista Errors
Thread Tools Display Modes

802.1q/p and NDIS 5.1 Intermediate driver

 
 
Peter
Guest
Posts: n/a

 
      06-01-2009



I'd like to be sure if this assumption is correct:
NIC driver supports VLAN and there is installed NDIS 5.1 IM driver.
For 802.1Q/p frame there is added a 32-bit field between the source MAC
address and the Ethernet Type.
When receiving packet is indicated in IM driver and consequently is called
ProtocolReceive(),
Is this 32-bit field always removed from packet when reaching
ProtocolReceive() ?
(Has ethernet frame in IM driver always 14-byte header in format:
DestMAC,SrcMAC,EthType followed by next protocol header)
?

Thanks !
Peter
 
Reply With Quote
 
Maxim S. Shatskih
Guest
Posts: n/a

 
      06-01-2009
> Is this 32-bit field always removed from packet when reaching
> ProtocolReceive() ?


No.

--
Maxim S. Shatskih
Windows DDK MVP

http://www.storagecraft.com

 
Reply With Quote
 
Peter
Guest
Posts: n/a

 
      06-01-2009
Thanks for the answer Maxim.
But I am a bit confused with this paragraph in DDK doc:

"In order to support 802.1Q packet information, a miniport driver must be
implemented to mark packets with 802.1Q information and to remove such
marking from packets. A miniport driver that supports 802.1Q packet
information must also be able to specify such support. The following topics
describe how to implement 802.1Q support"

By this paragraph, it seems that 802.1Q/p 32-bit field exist only in NIC
driver and it is removed when passed to upper IM driver and when packet is
sent, 32-bit field is added in NIC driver.
And you wrote that 32-bit field is still present in PtReceive() in IM driver.

Am I understanding this DDK doc paragraph wrong ?

Peter

"Peter" wrote:

> I'd like to be sure if this assumption is correct:
> NIC driver supports VLAN and there is installed NDIS 5.1 IM driver.
> For 802.1Q/p frame there is added a 32-bit field between the source MAC
> address and the Ethernet Type.
> When receiving packet is indicated in IM driver and consequently is called
> ProtocolReceive(),
> Is this 32-bit field always removed from packet when reaching
> ProtocolReceive() ?
> (Has ethernet frame in IM driver always 14-byte header in format:
> DestMAC,SrcMAC,EthType followed by next protocol header)
> ?
>
> Thanks !
> Peter

 
Reply With Quote
 
Maxim S. Shatskih
Guest
Posts: n/a

 
      06-01-2009
If the NIC adapter driver (miniport) supports the header tags by itself, then no other software components will ever see them.

But, if the support is in the IM driver, then it is visible to the software.

--
Maxim S. Shatskih
Windows DDK MVP

http://www.storagecraft.com

"Peter" <> wrote in message news:A716F9F3-61A4-43BE-9022-...
> Thanks for the answer Maxim.
> But I am a bit confused with this paragraph in DDK doc:
>
> "In order to support 802.1Q packet information, a miniport driver must be
> implemented to mark packets with 802.1Q information and to remove such
> marking from packets. A miniport driver that supports 802.1Q packet
> information must also be able to specify such support. The following topics
> describe how to implement 802.1Q support"
>
> By this paragraph, it seems that 802.1Q/p 32-bit field exist only in NIC
> driver and it is removed when passed to upper IM driver and when packet is
> sent, 32-bit field is added in NIC driver.
> And you wrote that 32-bit field is still present in PtReceive() in IM driver.
>
> Am I understanding this DDK doc paragraph wrong ?
>
> Peter
>
> "Peter" wrote:
>
>> I'd like to be sure if this assumption is correct:
>> NIC driver supports VLAN and there is installed NDIS 5.1 IM driver.
>> For 802.1Q/p frame there is added a 32-bit field between the source MAC
>> address and the Ethernet Type.
>> When receiving packet is indicated in IM driver and consequently is called
>> ProtocolReceive(),
>> Is this 32-bit field always removed from packet when reaching
>> ProtocolReceive() ?
>> (Has ethernet frame in IM driver always 14-byte header in format:
>> DestMAC,SrcMAC,EthType followed by next protocol header)
>> ?
>>
>> Thanks !
>> Peter

 
Reply With Quote
 
Peter
Guest
Posts: n/a

 
      06-01-2009
> If the NIC adapter driver (miniport) supports the header tags by
itself, then no other software components will ever see them.

In this case,
does it mean that if 802.1Q/p tagged frame is received through NIC adapter
driver, then in above IM driver's PtReceive() is present classic 14-byte
Ethernet header without 802.1Q/p 32-bit field ?

>
> But, if the support is in the IM driver, then it is visible to the software.
>

So if NIC adapter driver does not support 802.1Q/p,
and 802.1Q/p tagged packet is received, then in above IM driver's
PtReceive() is present 18-byte Ethernet Header with 802.1Q/p 32-bit field ?

Peter
 
Reply With Quote
 
Maxim S. Shatskih
Guest
Posts: n/a

 
      06-01-2009
> driver, then in above IM driver's PtReceive() is present classic 14-byte
> Ethernet header without 802.1Q/p 32-bit field ?


Yes.

> and 802.1Q/p tagged packet is received, then in above IM driver's
> PtReceive() is present 18-byte Ethernet Header with 802.1Q/p 32-bit field ?


Yes.

--
Maxim S. Shatskih
Windows DDK MVP

http://www.storagecraft.com

 
Reply With Quote
 
Pavel A.
Guest
Posts: n/a

 
      06-01-2009
Support of .1Q/p by a miniport means that the miniport will
accept the Q/p data in out-of-band info of transmit packets,
and will insert this data in the out-of-band info of received packets.
Whether or not this data will be inserted or removed in
the packets, depends on the physical medium -
is it a real ethernet, or something else.

Of course, the best situation is when both miniport and protocols
understand both inband P/Q tags and OOB info.
Otherwise, one side must adapt to another.
If you have a real ethernet and your hardware does not help with
addind/removing the tags, don't declare support for P/Q and let
protocols deal with raw L2 packets.
But, if this breaks some silly <del><del> naïve IM,
have to remove the tag.

-- pa


"Peter" <> wrote in message
news:A716F9F3-61A4-43BE-9022-...
> Thanks for the answer Maxim.
> But I am a bit confused with this paragraph in DDK doc:
>
> "In order to support 802.1Q packet information, a miniport driver must be
> implemented to mark packets with 802.1Q information and to remove such
> marking from packets. A miniport driver that supports 802.1Q packet
> information must also be able to specify such support. The following
> topics
> describe how to implement 802.1Q support"
>
> By this paragraph, it seems that 802.1Q/p 32-bit field exist only in NIC
> driver and it is removed when passed to upper IM driver and when packet is
> sent, 32-bit field is added in NIC driver.
> And you wrote that 32-bit field is still present in PtReceive() in IM
> driver.
>
> Am I understanding this DDK doc paragraph wrong ?
>
> Peter
>
> "Peter" wrote:
>
>> I'd like to be sure if this assumption is correct:
>> NIC driver supports VLAN and there is installed NDIS 5.1 IM driver.
>> For 802.1Q/p frame there is added a 32-bit field between the source MAC
>> address and the Ethernet Type.
>> When receiving packet is indicated in IM driver and consequently is
>> called
>> ProtocolReceive(),
>> Is this 32-bit field always removed from packet when reaching
>> ProtocolReceive() ?
>> (Has ethernet frame in IM driver always 14-byte header in format:
>> DestMAC,SrcMAC,EthType followed by next protocol header)
>> ?
>>
>> Thanks !
>> Peter


 
Reply With Quote
 
Peter
Guest
Posts: n/a

 
      06-02-2009
Thanks Pavel for the answer.

One more question relating to 802.1Q/p and your explanation.
What about situation when NIC miniport driver has enabled 802.1Q/p support,
and "QoS Packet Scheduler" is also installed and enabled and priority packet
tagged with 802.1Q/p 32-bit field is received.
Which driver does bandwidth management in this case ?

Peter


"Pavel A." wrote:

> Support of .1Q/p by a miniport means that the miniport will
> accept the Q/p data in out-of-band info of transmit packets,
> and will insert this data in the out-of-band info of received packets.
> Whether or not this data will be inserted or removed in
> the packets, depends on the physical medium -
> is it a real ethernet, or something else.
>
> Of course, the best situation is when both miniport and protocols
> understand both inband P/Q tags and OOB info.
> Otherwise, one side must adapt to another.
> If you have a real ethernet and your hardware does not help with
> addind/removing the tags, don't declare support for P/Q and let
> protocols deal with raw L2 packets.
> But, if this breaks some silly <del><del> naïve IM,
> have to remove the tag.
>
> -- pa
>
>
> "Peter" <> wrote in message
> news:A716F9F3-61A4-43BE-9022-...
> > Thanks for the answer Maxim.
> > But I am a bit confused with this paragraph in DDK doc:
> >
> > "In order to support 802.1Q packet information, a miniport driver must be
> > implemented to mark packets with 802.1Q information and to remove such
> > marking from packets. A miniport driver that supports 802.1Q packet
> > information must also be able to specify such support. The following
> > topics
> > describe how to implement 802.1Q support"
> >
> > By this paragraph, it seems that 802.1Q/p 32-bit field exist only in NIC
> > driver and it is removed when passed to upper IM driver and when packet is
> > sent, 32-bit field is added in NIC driver.
> > And you wrote that 32-bit field is still present in PtReceive() in IM
> > driver.
> >
> > Am I understanding this DDK doc paragraph wrong ?
> >
> > Peter
> >
> > "Peter" wrote:
> >
> >> I'd like to be sure if this assumption is correct:
> >> NIC driver supports VLAN and there is installed NDIS 5.1 IM driver.
> >> For 802.1Q/p frame there is added a 32-bit field between the source MAC
> >> address and the Ethernet Type.
> >> When receiving packet is indicated in IM driver and consequently is
> >> called
> >> ProtocolReceive(),
> >> Is this 32-bit field always removed from packet when reaching
> >> ProtocolReceive() ?
> >> (Has ethernet frame in IM driver always 14-byte header in format:
> >> DestMAC,SrcMAC,EthType followed by next protocol header)
> >> ?
> >>
> >> Thanks !
> >> Peter

>
>

 
Reply With Quote
 
Pavel A.
Guest
Posts: n/a

 
      06-02-2009
Peter wrote:
> Thanks Pavel for the answer.
>
> One more question relating to 802.1Q/p and your explanation.
> What about situation when NIC miniport driver has enabled 802.1Q/p support,
> and "QoS Packet Scheduler" is also installed and enabled and priority packet
> tagged with 802.1Q/p 32-bit field is received.
> Which driver does bandwidth management in this case ?
>
> Peter


If I remember correctly, the Psched IM does bandwidth management
and implements the stream queues for Traffic Control,
and it works with both types of L2 miniports - with or without P/q support.
The problem with bandwidth management in legacy (NDIS 5.x) miniports
is that Windows isn't aware of it, and psched is not documented well enough.

-- pa

> "Pavel A." wrote:
>
>> Support of .1Q/p by a miniport means that the miniport will
>> accept the Q/p data in out-of-band info of transmit packets,
>> and will insert this data in the out-of-band info of received packets.
>> Whether or not this data will be inserted or removed in
>> the packets, depends on the physical medium -
>> is it a real ethernet, or something else.
>>
>> Of course, the best situation is when both miniport and protocols
>> understand both inband P/Q tags and OOB info.
>> Otherwise, one side must adapt to another.
>> If you have a real ethernet and your hardware does not help with
>> addind/removing the tags, don't declare support for P/Q and let
>> protocols deal with raw L2 packets.
>> But, if this breaks some silly <del><del> naïve IM,
>> have to remove the tag.
>>
>> -- pa
>>
>>
>> "Peter" <> wrote in message
>> news:A716F9F3-61A4-43BE-9022-...
>>> Thanks for the answer Maxim.
>>> But I am a bit confused with this paragraph in DDK doc:
>>>
>>> "In order to support 802.1Q packet information, a miniport driver must be
>>> implemented to mark packets with 802.1Q information and to remove such
>>> marking from packets. A miniport driver that supports 802.1Q packet
>>> information must also be able to specify such support. The following
>>> topics
>>> describe how to implement 802.1Q support"
>>>
>>> By this paragraph, it seems that 802.1Q/p 32-bit field exist only in NIC
>>> driver and it is removed when passed to upper IM driver and when packet is
>>> sent, 32-bit field is added in NIC driver.
>>> And you wrote that 32-bit field is still present in PtReceive() in IM
>>> driver.
>>>
>>> Am I understanding this DDK doc paragraph wrong ?
>>>
>>> Peter
>>>
>>> "Peter" wrote:
>>>
>>>> I'd like to be sure if this assumption is correct:
>>>> NIC driver supports VLAN and there is installed NDIS 5.1 IM driver.
>>>> For 802.1Q/p frame there is added a 32-bit field between the source MAC
>>>> address and the Ethernet Type.
>>>> When receiving packet is indicated in IM driver and consequently is
>>>> called
>>>> ProtocolReceive(),
>>>> Is this 32-bit field always removed from packet when reaching
>>>> ProtocolReceive() ?
>>>> (Has ethernet frame in IM driver always 14-byte header in format:
>>>> DestMAC,SrcMAC,EthType followed by next protocol header)
>>>> ?
>>>>
>>>> Thanks !
>>>> Peter

>>


 
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Ndis intermediate Mux 1:N driver Yu Hao Windows Vista Drivers 0 02-10-2009 02:12 AM
NDIS 6.0 MUX Intermediate driver imanandr Windows Vista Drivers 8 11-22-2006 10:30 PM
NDIS Intermediate Driver for 802.11 Ganesan Windows Vista Drivers 10 10-11-2004 02:02 AM
NDIS Intermediate Driver. Bill Tang Windows Vista Drivers 1 07-15-2003 04:48 AM
Re: NDIS Intermediate Driver. Thomas F. Divine Windows Vista Drivers 0 07-14-2003 04:00 PM



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59