24 | | 2. Because the process by which a transmit queue is emptied depends on the upper-level MAC, the upper-level MAC owns the code responsible for this. As such, the upper-level MAC calls its own function for processing any currently-filled transmit queues. In addition, the framework itself is capable of calling this function via a registered callback. It will call this function whenever the lower-level MAC has finished sending an MPDU. |
25 | | 3. Finally, the upper-level MAC is notified whenever the lower-level MAC has finished sending an MPDU via a registered callback. |
| 24 | 1. Because the process by which a transmit queue is emptied depends on the upper-level MAC, the upper-level MAC owns the code responsible for this. As such, the upper-level MAC calls its own function for processing any currently-filled transmit queues. In addition, the framework itself is capable of calling this function via a registered callback. It will call this function whenever the lower-level MAC has finished sending an MPDU. |
| 25 | 1. When a packet is dequeued and just about to be passed down to the lower-level MAC, a callback into the upper-level MAC is executed. This gives the upper-level MAC the opportunity to perform any "last minute" changes to the packet contents before it is handed over for transmission. For example, this callback is where the AP updates the Traffic Indication Map (TIM) in outgoing beacons. At the time of dequeue, the AP can look into the contents of its other queues and determine what other packets need to be sent. |
| 26 | 1. Finally, the upper-level MAC is notified whenever the lower-level MAC has finished sending an MPDU via a registered callback. |