Main Content

802.11be System-Level Simulation Using EMLSR Multilink Operation

Since R2024b

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:

  1. Create and configure a Wi-Fi 7 network scenario consisting of an AP MLD and two STA MLDs.

  2. Add full-buffer traffic and a TGax fading channel between the MLDs.

  3. Configure and simulate EMLSR MLO communication between the AP MLD and STA MLDs operating in EMLSR mode.

  4. 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.

  5. Plot performance metrics such as medium access layer (MAC) throughput, MAC packet loss, and application packet latency captured at each node.

  6. 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.

wlan_emlsr_mlo_scenario.png

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)

Figure Packet Communication Over Time contains an axes object and another object of type uigridlayout. The axes object with title State Transitions of Nodes, xlabel Time (seconds), ylabel Node Names contains 6 objects of type patch, constantline.

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

Figure contains 3 axes objects and another object of type subplottext. Axes object 1 with title Throughput at Each Node, xlabel Node Name, ylabel Throughput (Mbps) contains an object of type bar. Axes object 2 with title Packet Loss at Each Node, xlabel Node Name, ylabel Packet Loss Ratio contains an object of type bar. Axes object 3 with title Average Packet Latency at Each Node, xlabel Node Name, ylabel Latency (s) contains an object of type bar.

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

Figure contains an axes object. The axes object with title UL Throughput at STAs Operating in Different MLO Modes, ylabel MAC Throughput (Mbps) contains an object of type bar.

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:

References

  1. “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.

See Also

Related Topics