wiki:Internal/WinlabMadwifi/MultiMACPaper

Version 1 (modified by Surya Satyavolu, 19 years ago) ( diff )

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
Note: See TracWiki for help on using the wiki.