Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When I create a QoS policy in Windows 7 through the Group Policy editor and set a DSCP value, does Windows 7 add the 802.1p QoS field to the Ethernet frame? If so, how does it map the different values from DSCP (0-63) to the 802.1p QoS values (0-7)?

So to be clear, my questions are:

  • Does Windows 7 set an 802.1p value for configured QoS policies?
  • If so, how does Windows 7 map the QoS-policy's DSCP value to the 802.1p value?

This question is specifically for outgoing packets.

Note: 802.1p tagging is supported in Windows 7 (and has been since Windows 2000, XP SP2, Windows Server 2003). Microsoft seems to allude to a mapping of DSCP to 802.1p in this document.

share|improve this question

There appears to be a crapload of information here (new link).

DSCP and 802.1p are two different methods of QoS, and they do not necessarily correspond, although managed switches can certainly map between the two in the event that one or the other is unsupported on a particular device (with DSCP being the older, more widely-supported one). Windows maps traffic to both independently, with the following values used for 802.1q:

Non-conforming packets  0

Best-effort             0

Controlled load         4

Guaranteed service      5

Network control         7

Qualitative             0

The general trend is higher values = higher priority traffic, but most network devices tend to coalesce these values into a handful of queues/buffers internally (very low, low, medium, high, for example). Also, if your application doesn't label its traffic type, Windows will have nothing to map to and you won't see any change in performance.

share|improve this answer
Those links aren't really conclusive. Its definitely possible that Windows doesn't map them to one another, but it seems that if you have 802.1p enabled on your network equipment it would make sense to set it accordingly. So I've been looking for something conclusive. I am currently trying to put together a test to see for myself if there is any mapping and how to affect the 802.1p value. – syplex Jan 10 '13 at 1:33
harrymc's answer indicates that Windows 7 doesn't have 802.1p support, but Windows 8 does. Supposedly, there are issues with using 802.1p with older routers, as they cannot properly handle the tag and will end up stripping it (I've seen some weird behavior when used in conjunction with VLANs too). DSCP is a field within a standard IP packet, so at worst, it will be ignored. – Bigbio2002 Jan 10 '13 at 1:40
harrymc's answer is incorrect in stating that Windows 7 doesn't support 802.1p. Its been supported since Windows 2000 (you can modify the default values in group policy under Administrative Templates->Network->QoS Packet Scheduler->Layer 2 priority value). For local ethernet traffic with layer 2 switches DSCP is useless since there are no router hops. Many (if not all) switches seem to support 802.1p these days, even cheap ones. My primary goal is to enable QoS on a LAN with no hops, so 802.1p is the only solution. – syplex Jan 10 '13 at 1:58

Support for 802.1p and DSCP has been claimed by Microsoft since many years.
Yet I have found a troubling Microsoft article saying that 802.1p only started with Server 2012 (same code-base as Windows 8).

The Microsoft article Quality of Service (QoS) Overview says:

Previous versions of Windows support priority tagging in the IP header of a network packet. The priority bits are known as Differentiation Service Code Point (DSCP). Windows Server 2012 adds the support of 802.1p tagging. 802.1p is a 3-bit priority value in the layer 2 Ethernet frame. Therefore it applies to non-IP packets such as RDMA over Ethernet.

Both DSCP and 802.1p are said by Microsoft in the article Differentiated Services Code Point (DSCP) overview to be equivalent in functionality. However, as these two standards apply to different layers of the communication protocol, it is unlikely that one can be mapped to the other.

share|improve this answer
From what I have read 802.1p tagging is supported in Winodws since at least XP SP2. In XP, the Traffic Control (TC) API or the QoS API could be used. In Vista and above, the qWAVE API is used. – syplex Jan 9 '13 at 0:05
The qWAVE API is said to set both DSCP and 802.1p, but this doesn't mean that both are supported by the operating system (but it does mean that setting one of them does not automatically set the other). According to the link above, 802.1p is only meaningful in the latest Windows version. – harrymc Jan 9 '13 at 7:44
802.1p is supported by Windows 2000 and above. That link says the specific enumeration of QOS_TRAFFIC_TYPE is only supported in Windows Vista and above for workstations and Windows Server 2008 and above for servers. The API was different in Windows 2000 and in XP but 802.1p was still supported. – syplex Jan 9 '13 at 23:54
The article I found definitely states that there was no support for it by Windows servers before Server 2012, but that doesn't say anything about client versions such as 7. I based my answer on the fact that both versions do have a common code-base, but of course I can be wrong. I have no access to Microsoft internals and so can only guess that the 802.1p implementation, if it existed, was on Windows servers not operational or flawed before Server 2012. As always when Microsoft sources conflict, one has to use caution and common-sense. – harrymc Jan 10 '13 at 7:33
Also see this article describing some reasons that can prevent 802.1p from working. Even if the tag was specified by the API, it's not at all sure that it was sent out, if not handled correctly at all stages. 802.1p can even conflict with the MTU! – harrymc Jan 10 '13 at 9:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .