Skip to content

wifi: Introduce the FrameExchangeManager base class

Stefano Avallone requested to merge stavallo/ns-3-dev:fem into master

FrameExchangeManager is a base class replacing MacLow for non-QoS stations. Subclasses will be added to handle the other types of stations.

This MR introduces two other new components, WifiProtectionManager and WifiAckManager that implement the logic to select the protection method and the acknowledgment method, respectively. They use a new class, WifiTxParameters, to represent the transmission parameters for a frame. WifiTxParameters will eventually replace MacLowTransmissionParameters.

WifiTxTimer is a powerful yet simple class that re-starts the TX timer when an RX-START.indication primitive is received from the PHY. There is no longer the need to keep a distinct event for every different TX timer (and timeout method).

Packets are no longer dequeued from the MAC queue when preparing a frame, but only when the frame is actually transmitted. This avoids the need of re-inserting frames into the MAC queue when the RTS/CTS exchange fails (which can be difficult with multi-TID A-MPDUs, MU PPDUs, ...)

All the tests and examples pass.

The next MR in this series is !478 (merged)

Edited by Stefano Avallone

Merge request reports