Hi,
I am developing a USB 802.11 Wireless Miniport network driver for NDIS version 5.1 on Windows-XP for our device. Our driver is expected to support wireless WMM classification by looking at the TID (traffic ID) field in 802.1p/DSCP tag of the packets given by NDIS. When there are two applications trying to stream some data through our wireless interface and if their combined throughput requirement is greater than the available wireless bandwidth, it is expected that the higher priority stream should get greater throughput than the other stream and the lower priority stream being trottled.
However, we have found that NDIS (QoS packet scheduler) does not do any kind of prioritized scheduling of these streams before passing the packets to our driver i.e. packets from both the streams are given to the miniport driver by NDIS on First Come First Serve (FCFS) basis. Because of this, the two streams get equal bandwidth on the wireless LAN and also suffer the same end-to-end latency. Our driver sets the flag of NDIS_MAC_OPTION_8021P_PRIORITY
in OID_GEN_MAC_OPTIONS
query.
Also we are able to see the DSCP and 802.p tag values of the packet. Since I am not using the Vista, NDIS_PER_PACKET_INFO_FROM_PACKET(_Packet, Ieee8021pPriority)
is used in detecting 802.1p tag.
So I want know the following:
1. Mechanism available in Windows to enable priority based packet scheduling based on DSCP/802.1p tagging
before passing the packets to our miniport driver.
2. Changes that need to be done in our miniport driver to support the same.
Could you please help me with this?
Regards,
Shivkumar