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
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
Last modified
19 years ago
Last modified on Feb 28, 2006, 12:45:18 PM
Note:
See TracWiki
for help on using the wiki.