160 likes | 311 Views
WiSMART Wireless Stanford Measurement Analysis and Research Tool. Amit K. Vyas (amitvyas@cs.stanford.edu) Fouad A. Tobagi (tobagi@stanford.edu) Stanford University. Objective. Flexible Wireless Measurement Tool Capture low-level details for each packet transmission
E N D
WiSMARTWireless Stanford Measurement Analysis and Research Tool Amit K. Vyas (amitvyas@cs.stanford.edu) Fouad A. Tobagi (tobagi@stanford.edu) Stanford University Wireless Mesh networks (AIIT)
Objective • Flexible Wireless Measurement Tool • Capture low-level details for each packet transmission • Allow measurements in real network or test-bed, for detailed monitoring, debugging, or controlled experiments • Control of data rate, transmission power and MAC retransmission settings • Useful to characterize wireless channel and receiver • Measurement Capabilities • Signal Level and Error Status of each packet • Distinguish various PHY errors – sync, PLCP and CRC errors • MAC header and MAC processing errors • e.g. wrong BSS ID, duplicate frame, defragmentation failed • Measurements at both transmitter and receiver – to measure details for data packet as well as acknowledgement Wireless Mesh networks (AIIT)
Background and System Info • Background Info • Developed at Stanford university in collaboration with Orange-France Telecom R&D • Based on open source Multi-band Atheros Driver for WiFi (also known as MadWiFi) – http://madwifi.org • System Info • Can be used with devices using Atheros-based WiFi cards • Measurement Tool developed and tested on: • HP/Compaq Laptop (Model nc6110) • Orinoco Gold 8480-WD 802.11 abg Combo Card from Proxim Inc (Chipset: AR5212 from Atheros) • Linux Operating System (we used Redhat Fedora Core 4) Wireless Mesh networks (AIIT)
Measurement Capabilities • Receiver Measurements • Timing Information (Microseconds) • Signal-to-Noise Ratio (SNR) • Received Signal Strength Indicator (RSSI) which is calibrated to SNR according to Atheros • Physical Layer statistics • Reception Status (correct or not) • Received Frame Length and Data Rate • Different types of Errors • PHY Timing error • PLCP errors – Signal parity, illegal rate field, illegal length field, illegal service field • CRC error • Power drop, Decryption error, FIFO overrun Wireless Mesh networks (AIIT)
Measurement Capabilities • Receiver Measurements (continued) • MAC Layer Statistics • Received Frame Length • MAC Sequence Number • Type of MAC Frame – data, management, control, beacon, or probe response frame • Error codes to indicate reason when a frame is dropped at the MAC layer – records 72 different error codes • e.g. bad version, wrong BSS ID, duplicate frame, WEP processing failed, defragmentation failed Wireless Mesh networks (AIIT)
Measurement Capabilities • Transmitter Measurements • Timing Information • Transmission Status – successful or not • Transmission Rate used • SNR of received acknowledgement (ACK) • In case of retries – number of short or long retries Wireless Mesh networks (AIIT)
Control of Parameters • Data Rate • Madwifi driver provides some rate control algorithms • It can also be fixed to run controlled experiments • MAC Retries • The max no. of retries can be set as desired • Transmission Power • Only some Atheros chipsets allow transmission power adjustment, and we have not been able to verify if transmit power can be changed or not Wireless Mesh networks (AIIT)
User-level Program Kernel Module Architecture • Measurement Tool has two components: • Kernel Module and User-level Program • Related components: • Application Traffic Generator • Data Reduction Tool An interface to control the measurements and record them to a file in user-space Perform the required measurements using information from the Atheros Hardware Abstraction Layer (HAL) Wireless Mesh networks (AIIT)
Architecture • User-level Program • Control of Measurements • IOCTL (Input/Output Control) calls to kernel module for starting and stopping measurements • Recording Measurement Data • Queries the kernel module via an IOCTL call to get measurements made by kernel module • Buffer size in kernel is limited, hence user-level program regularly polls the kernel to get the measured data and empty the kernel’s buffers • Buffer overflow flag is set if kernel buffer overflows Wireless Mesh networks (AIIT)
Reception Events Transmission Events Buffer 2 Buffer 1 Buffer 2 Buffer 1 Architecture • Kernel Module • Double buffer scheme to deal with concurrency issues between reading and writing operations – needed because packet-reception is interrupt driven and cannot be made to wait by using semaphores • After one buffer is full, kernel starts writing to the other buffer • If user program polls when at least one buffer is full, the data is returned and buffer emptied • If both buffers become full, then overflow flag is set and measurements are stopped until buffers are read and emptied Wireless Mesh networks (AIIT)
Control Options • These options are to be set in file include/compile_flags.h: • TIME_ZONE & TIME_ZONE_STR • used to specify time zone in which measurements should be printed, e.g. 0 = UTC • STOP_MAC_RETRIES • Useful for running controlled experiments without MAC retries • STOP_AMRR • To stop Adaptive Multi Rate Retry (AMRR) • CHANGE_BEACON_INTERVAL • used to change default, min and max time between beacons – useful for controlled experiments • CHANGE_BEACON_MISS_THRESHOLD • By default if the driver realizes that beacons have not been sent for 3 beacon intervals, then it thinks there is a problem and resets the device. • During measurements with low packet transmission interval, this can cause a problem, and can hence be set to desired value Wireless Mesh networks (AIIT)
Control Options • STOP_IBSS_MERGE • As per ieee80211_node.c, the Wireless Ethernet Compatibility Alliance (WECA) has set a convention that an 802.11 station will change its BSS ID to match the “oldest” 802.11 ad hoc network, on the same channel. • Such merges have been observed to be correlated with spikes in packet recording delay (100-2000 us). Also, based on connectivity, oscillations in BSS ID can occur. • This flag can be used to stop IBSS merge when required • STOP_BSS_CHECK • The BSS IDs of devices could be different based on connectivity and certainly if STOP_IBSS_MERGE has been used • This option makes sure packets are not dropped at MAC due to wron BSS ID • STOP_AUTH_CHECK • When connectivity is bad, association and/or authentication state changes. • This option makes sure packets are not dropped at MAC due to failed authentication check Wireless Mesh networks (AIIT)
Measurement Format • All measurement formats can be seen in file net80211/ieee80211_wireless.c. The exact formatting can be seen in the following functions: • ieee80211_print_ath_rx_stats - Receiver logs for each reception attempt • ieee80211_print_80211_stats - Receiver logs about MAC info when frame is received correctly at the PHY • ieee80211_print_ath_tx_stats - Transmitter logs regarding each transmission - recorded after knowledge of whether ACK received or not • ieee80211_print_ath_tx_send_time - Transmitter logs regarding each transmission - recorded when the packet is given to the hardware for transmission • The following header files describe meanings of each term being printed: • net80211/ieee80211_ioctl.h • hal/ah_desc.h Wireless Mesh networks (AIIT)
Application Traffic Generator • UDP Client and Server • can be used in conjunction with measurement tool if desired to run controlled experiments • It was observed that in some other tools that transmitter does not send packets in cases when ACK is not received for some number of packets or when connection is not established • In this tool, transmitter sends UDP packets regardless of reception status at receiver for given • Packet Length • Inter-packet Interval • Test Duration Wireless Mesh networks (AIIT)
Data Analysis Tool • Analyzes measured data • Generate statistics of signal level and packet errors over time by splitting data into bins of specified time interval • Transmission Analysis • Determines number of packets sent in each interval by transmitter • Reception Analysis • Determines number of correct receptions, sync errors, PLCP errors and CRC errors per interval • Prints error if unexpected events occur • e.g. PHY event codes for 2.4 GHz when operating at 5 GHz, or packets dropped at MAC due to some error • Useful to characterize wireless channel and receiver Wireless Mesh networks (AIIT)
Thank You !! Wireless Mesh networks (AIIT)