Windows 7, Vista, 2008 configuration for IPERF QoS tests

To enable IPERF QoS settings in Windows 7, more steps are required.
First of all, the same DisableUserTOSSetting key as in Windows XP must be configured:

Secondly, Windows 7 QoS settings must be allowed by domain policies. To disable that, additional REG_SZ key must be configured:

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\QoS\"Do not use NLA"="1"

Note that it is of REG_SZ type, not REG_DWORD:

You can copy the following lines into a text file, name it "IPERF Win7 registry fix.cmd" and run it:

reg.exe add HKLM\SYSTEM\CURRENTCONTROLSET\SERVICES\TCPIP\QoS /f
reg.exe add HKLM\SYSTEM\CURRENTCONTROLSET\SERVICES\TCPIP\QoS /v "Do not use NLA" /t REG_SZ /d "1" /f
reg.exe add HKLM\SYSTEM\CURRENTCONTROLSET\SERVICES\TCPIP\PARAMETERS /v DisableUserTOSSetting /t REG_DWORD /d 0 /f
@echo+
@echo Done. Reboot the computer now.
@echo+
@pause

Thus, you escape the domain policy... The third and last step, is to override the local group policy.

Bear in mind that it is not available in Windows 7 Home edition. Start Microsoft Management Console (click Start, in Start Search box type mmc, then double-click mmc program found). Console Root is probably empty. On the File menu, click Add/Remove Snap-in. In the Add or Remove Snap-ins dialog box, click Group Policy Object Editor, and then click Add:

 Now in the newly added Local Computer Policy, under Windows Settings, find Policy-Based QoS. Right-click on it and choose Advanced QoS Settings. In DSCP Marking Override tab, check Control DSCP marking... checkbox and choose Allowed to allow applications to set DSCP values independently of QoS policies:

We're almost done, reboot just in case. Wireshark will show that this setting doesn't work - packets are still sent with DSCP = 0 not matter what IPERF is trying to set.

We need to configure IPERF-specific policy. Right-click Policy-based QoS and choose Create new policy. Call it what you wish, for example IPERF QoS Policy. Specify the DSCP value you want to assign:

Insert the full path to the IPERF executable:

Specify any source or destination IP addresses:

Set protocols to both TCP and UDP:

and now new IPERF policy is completed:

Wireshark should now show it working, without a reboot!