Mango 802.11 MAC/PHY - MAC Software

Our 802.11 stack provides a fully programmable MAC. All MAC behaviors are implemented in bare-metal C running in MicroBlaze CPUs in the FPGA fabric. This architecture provides full flexibility throughout the MAC with rapid, software-only iteration on MAC protocol changes.

Our 802.11 MAC implementation is split between high and low level MAC functions. The high-level MAC is responsible for managing association state, queueing packets for transmission, and interfacing to external traffic sources. The low-level MAC is responsible for PHY configuration, real-time medium access, and coordinating Tx and Rx events according to a particular MAC protocol.

The MAC software stack is implemented in the Xilinx SDK, part of the Vivado tool suite. The software design is delivered as a single SDK workspace with the FPGA hardware project (exported from Vivado), BSPs for each CPU, and MAC software applications.

High-Level MAC Applications

Low-Level MAC Applications

  • Access Point (AP)
  • Infrastructure Client (STA)
  • Ad-hoc Client (IBSS)
  • 802.11 DCF
    • Standard CSMA/CA protocol
    • Fully parameterized implementation
  • NoMAC
    • Passthrough Tx/Rx
    • Template for custom MAC protocols

High-Level MAC Framework

Low-Level MAC Framework

  • Ethernet/wireless bridging
  • Control and measurement plane
  • Configurable Tx queueing
  • Programmable traffic generators
  • Network scan/join processing
  • Per-destination configuration
    • Tx queue per destination address
    • Tracking client MAC/PHY capabilities
    • Rate and waveform selection
  • Real-time Tx/Rx event logging
  • PHY configuration and control
  • Control and measurement plane
  • Primitives for MAC protocols
    • Tx state machine configuration
    • IFS timers
    • Tx/Rx coordination with upper MAC