100 likes | 254 Views
NDIS 5.1 802.11 Objects. Byoung-Jo “J “ Kim AT&T Labs-Research Mar. ’03, Dallas. NDIS 5.1. NDIS: Device Driver to OS Interface specification for Windows (including PPC) NDIS 5.1 adds 802.11 specific calls to support Win XP WLAN “auto” config http://www.msdn.com and search “802.11”
E N D
NDIS 5.1 802.11 Objects Byoung-Jo “J “ Kim AT&T Labs-Research Mar. ’03, Dallas
NDIS 5.1 • NDIS: Device Driver to OS Interface specification for Windows (including PPC) • NDIS 5.1 adds 802.11 specific calls to support Win XP WLAN “auto” config • http://www.msdn.com and search “802.11” • XP implements some of functions that used to be handled by vendor client software • Initiate Scan and receive results • Command to associate with a particular SSID • Basic Configurations and Statistics
FYI: Some Interesting Behaviors • If WLAN auto config profiles exist, always prefer visible SSID over invisible SSID regardless of profile order: Does not seem by design • Response to Beacon WEP bit is inconsistently handled depending on card models • Same for Broadcast encryption/decryption and handling of unencrypted broadcast under 1x • Hopefully will get fixed with the implementation of WPA and 11i • Rumors of SSID hopping when many SSID visible • Personally encountered, but never verified in lab • Maybe fixed with SP1 or other patches
RRM Additions to NDIS • Host to NIC interaction: Beyond our scope, but something to keep in mind and work with others • Objects that set and retrieve TGk actions and results • A Subset of TGk actions • Extend the statistics Object and Fix definitions • Preferably, it will share our definitions and parameters • Can be used for SNMP if an agent is present
Linux Wireless Tools • http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html • Adds WLAN specific APIs for drivers and some tools • Available in most Linux distributions now • Open source, voluntary effort still progressing • Drivers implementing the API available for several major chipsets and NIC models • Relaxed approach like many open source projects
Some interesting Parmeters • #define SIOCSIWSENS 0x8B08 /* set sensitivity (dBm) */ • #define SIOCSIWTXPOW 0x8B26 /* set transmit power (dBm) */ • #define IWEVQUAL 0x8C01 /* Quality part of statistics (scan) */ • #define IWEVREGISTERED 0x8C03 /* Discovered a new node (AP mode) */ • #define IWEVEXPIRED 0x8C04 /* Expired a node (AP mode) */ • #define IW_SCAN_ALL_ESSID 0x0001 /* Scan all ESSIDs */ • #define IW_SCAN_ALL_FREQ 0x0004 /* Scan all Frequencies */ • #define IW_SCAN_ALL_MODE 0x0010 /* Scan all Modes */ • #define IW_SCAN_ALL_RATE 0x0040 /* Scan all Bit-Rates */ • struct iw_quality qual; /* Quality of the link * (instant/mean/max) */ • struct iw_discarded discard; /* Packet discarded counts */ • struct iw_missed miss; /* Packet missed counts */
Continued • struct iw_range { /* Informative stuff (to choose between different interface) */ __u32 throughput; /* To give an idea... */ /* In theory this value should be the maximum benchmarked * TCP/IP throughput, because with most of these devices the * bit rate is meaningless (overhead an co) to estimate how * fast the connection will go and pick the fastest one. * I suggest people to play with Netperf or any benchmark... */ • struct iw_quality max_qual; /* Quality of the link */
Continued • /* Average quality of link & SNR */ struct iw_quality avg_qual; /* Quality of the link */ /* This should contain the average/typical values of the quality * indicator. This should be the threshold between a "good" and * a "bad" link (example : monitor going from green to orange). * Currently, user space apps like quality monitors don't have any * way to calibrate the measurement. With this, they can split * the range between 0 and max_qual in different quality level * (using a geometric subdivision centered on the average). * I expect that people doing the user space apps will feedback * us on which value we need to put in each driver... */
Recommendations • Though beyond our scope, we can interact informally for feedback and feedforward • Jointly develop optional recommendation for accessing TGk features within host