I'm connecting multiple Windows 2008R2 and Linux systems together, all using Intel X520-DA2 adapters. On linux it is straightforward to configure the VLAN's to use specific 802.1p priorities and I have enabled PFC on the adapters. This way, the priority pauses only pause specific TCP flows to overloaded machines while other machines remain reachable at a high performance(compared to 802.3x link-level pause)
I would like to configure the same thing in Windows 2008R2, for which I'm currently only able to use 802.3x which seriously degrades performance.
I can enable FCOE and iSCSI in the driver(which are also using priority flow control with specific priorities), but there doesn't seem to be a way to set a 802.1p priority. I looked at the policy based QOS, but that sets DSCP values, not 802.1p priorities, and IMHO that looks a very complex way of setting this, especially since I need a lot of those rules. Is there any way to set this in the driver, or am I missing something?
You did not miss anything. Everything you discovered below is correct. The driver will prioritize traffic on the port using 802.1p, but you cannot configure an 802.1p priority in the driver. There might be another approach to QoS besides using Windows policies (or DCB), but I do not know what the other approach would be.
Once upon a time, we had Intel® Priority Packet that could be used to set 802.1p priority, but that utility was discontinued many years ago. I never used the utility and cannot tell you much about it. The utililty is still available, but if you tried to use the utility with current adapters and newer versions of Windows, you might end up with a mess instead of being able to assign priorities. Also, the utility probably would not recognize the newer adapters. The Intel® Priority Packet 3 download is still available at http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=6020 http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=6020 if you want to play with it, but you will probably just be wasting your time.