802.11be System-Level Simulation Using EMLSR Multilink Operation
This example shows how to simulate an IEEE® 802.11be™ (Wi-Fi® 7) [1] enhanced multilink single-radio (EMLSR) multilink operation (MLO) between an access point (AP) multilink device (MLD) and two station (STA) MLDs.
Using this example, you can:
Create and configure a Wi-Fi 7 network scenario consisting of an AP MLD and two STA MLDs.
Add full-buffer traffic and a TGax fading channel between the MLDs.
Configure and simulate EMLSR MLO communication between the AP MLD and STA MLDs operating in EMLSR mode.
Visualize a state transition plot showing the time spent by the AP MLD and the STA MLDs in the Idle, Contention, Transmission, and Reception states.
Plot performance metrics such as medium access layer (MAC) throughput, MAC packet loss, and application packet latency captured at each node.
Capture and view the application layer (APP), MAC, and physical layer (PHY) statistics for each node.
You can further explore this example by plotting and comparing the uplink (UL) throughput at the STAs operating in simultaneous transmit and receive (STR), EMLSR, and non-MLO modes. For more information, see Further Exploration.
EMLSR MLO System-Level Simulation Scenario
Existing Wi-Fi 6 devices support operation across various links, such as channels in the 2.4 GHz, 5 GHz, and 6 GHz bands. However, these links operate independently, lacking coordination and significantly reducing efficiency. To address this, Wi-Fi 7 introduces MLO capability, a combined framework that manages multiple links, optimizing resource use across them. In the single-radio MLO mode, the MLD supports multiple links on one radio. Because there's only one radio, you cannot use multiple links at the same time. The single radio must alternate between multiple links in a time-domain multiplex (TDM) manner. As switching links with a single radio typically takes time and requires additional signaling, the single-radio operation limits you to statically switching links. Therefore, Wi-Fi 7 introduces an improved version of single-radio MLD, called Enhanced multi-link single-radio (EMLSR). In the EMLSR mode, an STA MLD with multiple receive chains actively listens to multiple links at the same time. Listening involves performing clear channel assessment (CCA) and receiving the initial control frame from an AP MLD. However, the STA MLD only transmits or receives data frames on one link at a time. For more information about EMLSR and the involved frame exchanges, see Overview of Wi-Fi 7 (IEEE 802.11be).
This example enables you to create, configure, and simulate EMLSR MLO in this Wi-Fi 7 scenario.
The scenario consists of an AP MLD connected to two STA MLDs. The AP MLD maintains two associated links each with STA MLD 1 and STA MLD 2, consisting of one link at a frequency band of 2.4 GHz and one at a frequency band of 5GHz. This scenario transmits full-buffer bidirectional data traffic between the AP MLD and STA MLDs using EMLSR MLO communication. At the end of the simulation, you capture the statistics and compute the transmission throughput for each device.
Check for Support Package Installation
Check if the Communications Toolbox Wireless Network Simulation Library support package is installed. If the support package is not installed, MATLAB® returns an error with a link to download and install the support package.
wirelessnetworkSupportPackageCheck
Configure Simulation Parameters
Set the seed for the random number generator to 1
. The seed value controls the pattern of random number generation. The random number generated by the seed value impacts several processes within the simulation, including backoff counter selection at the MAC layer and predicting packet reception success at the physical layer. To improve the accuracy of your simulation results after running the simulation, you can change the seed value, run the simulation again, and average the results over multiple simulations.
rng(1,"combRecursive")
Specify the simulation time in seconds. To visualize a live state transition plot for all of the nodes, set the enablePacketVisualization
variable to true
. To view the node performance visualization, set the enableNodePerformancePlot
variable to true
.
simulationTime = 1; enablePacketVisualization = true; enableNodePerformancePlot = true;
Configure WLAN Scenario
Initialize the wireless network simulator.
networkSimulator = wirelessNetworkSimulator.init;
Nodes
Specify the [band channel] pairs for each link in the MLD node.
bandAndChannel = [2.4 1; 5 36]; numLinks = size(bandAndChannel,1);
Create and configure an AP MLD and two STA MLDs by using the wlanNode
, wlanMultilinkDeviceConfig
, and wlanLinkConfig
objects.
Create a wlanLinkConfig
object for each link of the AP MLD and STA MLDs, specifying the BandAndChannel
, NumTransmitAntennas
, NumSpaceTimeStreams
, and MCS
property values. Note that both the AP and STA link configuration objects must have the same MPDUAggreggationLimit
value. Alternatively, you can create multiple link configuration objects by specifying multiple band and channel pairs using one wlanLinkConfig
object.
for linkIdx = 1:numLinks apLinkCfg(linkIdx) = wlanLinkConfig(BandAndChannel=bandAndChannel(linkIdx,:),NumTransmitAntennas=2,NumSpaceTimeStreams=2,MCS=3); staLinkCfg(linkIdx) = wlanLinkConfig(BandAndChannel=bandAndChannel(linkIdx,:),NumTransmitAntennas=1,NumSpaceTimeStreams=1,MCS=3); %#ok<*SAGROW> end
Specify the MLD configuration parameters for the AP MLD and the STA MLDs by using the wlanMultilinkDeviceConfig
object. Create two separate WLAN MLD objects: one for the AP MLD and another for the STA MLDs. Configure an MLD as an AP or a STA by setting the Mode
property of the wlanMultilinkDeviceConfig
object to "AP"
or "STA"
, respectively. Configure the STA MLD to operate in the EMLSR MLO mode by specifying the EnhancedMultilinkMode
property of the wlanMultilinkDeviceConfig
object to "EMLSR"
.
The EnhancedMultilinkPaddingDelay
property enables you to specify the EMLSR padding delay in seconds. This value is the minimum required duration of the MAC padding that the AP MLD adds to initial control frames it sends to an EMLSR STA MLD. The EMLSR STA MLD conveys this value to the associated AP MLD.
The EnhancedMultilinkTransitionDelay
property enables you to specify the EMLSR transition delay in seconds. This value is the time that the STA MLD takes to switch from exchanging frames on one of the EMLSR links to listening on all of the enabled EMLSR links.
apMLDCfg = wlanMultilinkDeviceConfig(Mode="AP",LinkConfig=apLinkCfg); staMLDCfg = wlanMultilinkDeviceConfig(Mode="STA",LinkConfig=staLinkCfg,EnhancedMultilinkMode="EMLSR", ... EnhancedMultilinkPaddingDelay=3.2e-05,EnhancedMultilinkTransitionDelay=3.2e-05);
Create an AP MLD node and two STA MLD nodes from the specified MLD configuration.
apMLD = wlanNode(Position=[0 0 0],Name="AP",DeviceConfig=apMLDCfg); staMLD = wlanNode(Position=[10 0 0; 0 10 0],Name=["STA1","STA2"],DeviceConfig=staMLDCfg); nodes = [apMLD staMLD]
nodes = 1x3 wlanNode array
To ensure all the nodes are configured properly, use the hCheckWLANNodesConfiguration
helper function.
hCheckWLANNodesConfiguration(nodes)
Node Association
Associate the STA MLD nodes to the AP MLD by using the associateStations
object function of the wlanNode
object. To configure UL and DL application traffic between the AP and STA, set the FullBufferTraffic
input of the associateStations
object function to "on"
.
associateStations(apMLD,staMLD,FullBufferTraffic="on")
Wireless Channel
To simulate the EMLSR functionality, you must add a channel model between the nodes.
To model a random TGax fading channel between each node, this example uses the hSLSTGaxMultiFrequencySystemChannel
helper function. Add the channel model to the wireless network simulator by using the addChannelModel
object function of the wirelessNetworkSimulator
object.
channel = hSLSTGaxMultiFrequencySystemChannel(nodes); addChannelModel(networkSimulator,channel.ChannelFcn)
Simulation and Results
Add the nodes to the wireless network simulator.
addNodes(networkSimulator,nodes)
To view the state transition plot, use the hPlotPacketTransitions
helper object. To disable the subplot of packet communication over frequency, set the FrequencyPlotFlag
property of the hPlotPacketTransitions
helper object to false
.
if enablePacketVisualization packetVisObj = hPlotPacketTransitions(nodes,simulationTime,FrequencyPlotFlag=false); end
To view the node performance visualization, use the hPerformanceViewer
helper object.
perfViewerObj = hPerformanceViewer(nodes,simulationTime);
Run the network simulation for the specified simulation time. The runtime visualization shows the time spent by the AP and the STA in the Idle, Contention, Transmission, and Reception states.
run(networkSimulator,simulationTime)
Use the plotNetworkStats
object function to display these simulation plots.
MAC throughput (in Mbps) at each transmitter (AP MLD and STA MLD).
MAC packet loss ratio (ratio of unsuccessful data transmissions to the total data transmissions) at each transmitter (AP MLD and STA MLD).
Average application packet latency incurred at each receiver (AP MLD and STA MLD). The average application packet latency shows the average latency that the STA MLD incurs to receive the downlink traffic from the AP MLD and the average latency that the AP MLD incurs to receive uplink traffic from the STA MLD.
if enableNodePerformancePlot plotNetworkStats(perfViewerObj) end
Statistics for Each Link in MLD
Retrieve the APP, MAC, and PHY statistics at each node by using the statistics
object function of the wlanNode
object. You can also access the statistics for each link of the MLD node from within the MAC and PHY substructures of the statistics structure. To retrieve the statistics for the links, in addition to the nodes, specify the "all"
argument to the statistics
object function. For more information on the statistics, see WLAN System-Level Simulation Statistics.
stats = statistics(nodes,"all");
Calculate the MAC throughput (in Mbps) at the STA1 node and at each link in the STA1 node by using the throughput
object function of hPerformanceViewer
helper object.
staMLDThroughput = throughput(perfViewerObj,staMLD(1).ID)
staMLDThroughput = 31.2000
staLink1Throughput = throughput(perfViewerObj,staMLD(1).ID,LinkID=1)
staLink1Throughput = 16.5000
staLink2Throughput = throughput(perfViewerObj,staMLD(1).ID,LinkID=2)
staLink2Throughput = 14.7000
Calculate the MAC packet loss ratio at the STA1 node and at each link in the STA1 node by using the packetLossRatio
object function of hPerformanceViewer
helper object.
staMLDPLR = packetLossRatio(perfViewerObj,staMLD(1).ID)
staMLDPLR = 0
staLink1PLR = packetLossRatio(perfViewerObj,staMLD(1).ID,LinkID=1)
staLink1PLR = 0
staLink2PLR = packetLossRatio(perfViewerObj,staMLD(1).ID,LinkID=2)
staLink2PLR = 0
Further Exploration
Plot and compare the UL throughput at the STA nodes operating in MLO-STR, MLO-EMLSR, and non-MLO modes by using the hCompareMLOvsNonMLOThroughput
helper function. This helper function enables you to associate an AP MLD with an STA operating in MLO and non-MLO modes.
hCompareMLOvsNonMLOThroughput
The results show that MLO improves MAC throughput significantly as compared to the non-MLO configuration. Because the STR mode enables the STA MLD nodes to transmit UL traffic asynchronously on multiple links simultaneously using multiple radios, it shows higher throughput than the EMLSR mode.
Appendix
The example uses these helpers:
hCheckWLANNodesConfiguration
— Check if the node parameters are configured correctlyhSLSTGaxMultiFrequencySystemChannel
— Return a system channel object, and sets the path loss modelhSLSTGaxAbstractSystemChannel
— Return a channel object for the abstracted PHY layerhSLSTGaxSystemChannel
— Return a channel object for the full PHY layerhSLSTGaxSystemChannelBase
— Return the base channel objecthPlotPacketTransitions
— Plot the state transition figurehPerformanceViewer
hCompareMLOvsNonMLOThroughput
References
“IEEE Draft Standard for Information Technology–Telecommunications and Information Exchange between Systems Local and Metropolitan Area Networks–Specific Requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications Amendment: Enhancements for Extremely High Throughput (EHT).” IEEE P802.11be/D5.0, November 2023, January 2024, 1–1045. https://ieeexplore.ieee.org/document/10381585.