wiki:802.11/MAC/Upper/MACHighFramework/TX_queue

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.

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:

  1. A free queue element is checked out and, if available, filled in with a packet payload.
  2. 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.
  3. 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.
  4. 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.