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