Detecting 802.1p Priority Tags: Part 3

Parts 1 and 2 of this series discussed how to determine whether an 802.1p tag was added to traffic, and how to modify the NDIS light-weight-filter (LWF) sample driver source code to accomplish this task. We do know that you’re all very busy and not everyone is a developer, so we’ve added to the package: full source code for the complete filter driver, a command-line tool for accessing the filtered packets, and compiled binaries for you non-developers. We also added the ability to validate *both* 802.1p and DSCP (from the IPv4/IPv6 header). This additional package was added to the existing download, so if you haven’t already read part-2 of this series, do so now and you’ll find download instructions there. For installation instructions, read the README file in the zip archive.

What do you think? Is this approach (source and tools) helpful? We do actively monitor the QoS forum, so let us know how we can improve your understanding of Windows QoS capabilities.

— Gabe Frost

— Huge thanks to Hemant Banavar who authored the tools

Comments (6)

  1. vpalkar says:

    I have a question about 802.1p.

    If I configure the vlan id for the miniport , the user prioirty is always 0 when I check the value NdisPacket8021qInfo.

    If I want to set the user priority , shall I configure it using group policy (gpedit.exe) ?

    How will it affect the overall system if I set the priority using proprty pages for miniport driver and modify the user priority for every packet , in the miniport driver ?

  2. Rich Reynolds says:


    working source code examples are always helpful, please keep them coming.

    Thanks, Rich

  3. Gabe Frost says:

    Hi vpalkar,

    While VLAN ID is something the NIC is responsible for, the OS is responsible for setting the 802.1p priority; this is not something which should be set in the NIC. There is no way to set the 802.1p tag other than programmatically, i.e. the application must call either the administrative traffic control (TC) API (traffic.h), or the Qos2 API (qos2.h). Stay tuned for a post on how to do this using the TC API.

    You *should not* set the 802.1p tag in the miniport driver, as this is the responsibility of the OS. Doing so could cause loss of end-to-end connectivity and potential instability in the network stack if a user-mode application were to call a native QoS API such as described above.

  4. Tom says:

    I notice this doesn’t seem to build under Windows XP… any suggestions for that platform ?

  5. wndpteam says:

    Hi Tom,

    The sample driver is an NDIS6 Light Weight Filter (LWF) driver. NDIS-6 (and LWF) is new to Vista/Server 2008, and replaces NDIS-5 Intermediate (IM) drivers on XP. Therefore, you would have to port the LWF to an IM driver to build on XP.

    — Gabe

  6. RaFi says:

    Could you add the x64 binaries for Windows Serwer 2008 R2?