Version 3 (modified by chunter, 10 years ago) (diff) |
---|
The 802.11 Reference Design and its documentation are under active development by the Mango team. The current release should be considered a beta- updates with bug fixes, API changes, new features and other refinements will be posted frequently. Please check the downloads page for the latest updates and post any questions about the design to the forums.
802.11 Reference Design
- Download
- Changelog
- FAQ
- Architecture
Using the Design...
Benchmarks
- IFS Calibration
- Throughput
- Transmitter Characterization
- Receiver Characterization
- Pkt. Det. Min. Power Characterization
MAC
Upper-level
Lower-level...
- PHY
Experiments Framework...
- Packet Flow
- FPGA Architecture
- FPGA Resource Usage
- App Notes
- Other Resources
- License
- Changelog
Wireless Transmit Queue
The MAC High Framework provides a queue for outgoing wireless transmissions. The storage of this queue is in the DRAM SODIMM on the WARP v3 board provided it is plugged into the board (otherwise, a much smaller queue is created inside local BRAM). The MAC High Framework maintains a pool a free queue elements that can be checked out by the upper-level MAC. Furthermore, it maintains a series of full queue elements that are tied to any number of independent queues. This allows, for example, an upper-level MAC like an Access Point to queue packets for each station independently.
The wireless transmission process is the following:
- A free queue element is checked out and, if available, filled in with a packet payload.
- The upper-level MAC decides which outgoing queue, if any, the packet should be added to and notifies the framework to add it to the end of that particular queue.
- The upper-level MAC checks each of the outgoing queues when the lower-level MAC is ready for another packet. Depending on whatever emptying mechanism it chooses (e.g. round-robin), it notifies the MAC High Framework to send from a particular queue.
- Once sent, the queue element is returned back to the free pool so it can be checked out and filled in with a new payload in the future.