WinlabMadwifi -> MultiMAC Paper Title: = MultiMAC - An Adaptive MAC Framework for Dynamic Radio Networking = ''Christian Doerr, Michael Neufeld, Jeff Fifield, Troy Weingart, Douglas C. Sicker, and Dirk Grunwald[[BR]] ''University of Colorado, Boulder'' == Motivation == * Bridging the gap between firmware based MAC and software radios * Capability to use dynamic MAC plug-in based on scenario. == Primary Achievements == This has been done with Madwifi driver on Atheros chipset. * Override 802.11 MPDU frame format * Necessary to send and receive custom frames * In each mode (Master, managed, monitor) card will accept certain types of frames * Monitor mode accepts all frames (even with CRC errors) * '''Approach: Use monitor mode to send and receive custom frames (transmit while monitor allowed by chipset)''' * Hardware automatically stamps packets with sequence numbers * Use retry = 1 bit to prevent this * Eliminate automatic ACK and retransmission * Again use monitor mode * Set multicast bit in dest MAC address using previous packet injection mechanism * Need to handle timeouts at sender appropriately * Eliminate virtual carrier sense (NAV) * By operating in monitor mode, NAV is disregarded by default * Controlling Physical Carrier Sense * Tricky! No easy way to do this * Introduce desired bias using pre-calibration * Card periodically calibrated noise floor * Raise the noise floor and bias the calibration * Disable periodic calibration after that * Cards assume “higher/lower noise” based on calibrated level * May be used for immediate send (TDMA based MAC) * '''Does not necessarily mean improved throughput, since Xmission may still interfere (in CSMA based MAC)''' * Controlling BAckoff Duration * Setting CWMin = CWMax in the driver * Timer management * Atheros chipset has a 64 bit 1-μsec timer, can be read/set by driver * Tag packet with delay value before inserting in Tx queue * Reset timer to zero * Driver spin-waits until the NOW = basetime + delay * By fixing CW, the additional defer can also be adjusted for