UL OFDMA, basic Trigger Frame and Multi-STA BlockAck

This is a blog article on 802.11ax uplink OFDMA (UL OFDMA) and the control frames that are involved.

According to the IEEE802.11ax draft 4 the UL OFDMA process look like this

Screenshot 2019-08-26 at 09.50.42

The MU-RTS and CTS are optionally and in some Cisco documentation, it says that the MU-RTS/CTS process is not needed. The MU-RTS/CTS process is described in another blog article. And as I say in that article, the MU-RTS/CTS process is not implemented by any vendors yet. And I also say it is better to use legacy RTS/CTS in a mixed environment, maybe.

My test lab is a Cisco Catalyst 9800CL (v16.12.1) wireless controller at Vmware Workstation, a Cisco Catalyst 9115 in FlexConnect mode, a Cisco 9115 in SnifferMode and two clients, a Samsung S10 and a Nano developer Kit with Intel AX200 NIC.

The attached pcap consists of three sessions (TXOP)  of UL OFDMA, each consisting of three frames; Basic Trigger Frame, the Dataframe that is not captured and the Multi-STA ACK (0x0016)

Screenshot 2019-08-26 at 12.46.19

The uplink data that are sent in the HE TB PPDU format is not captured. I’m not sure whether it is a problem with Wireshark or the Cisco 9115 in Sniffer mode, but the information in the Basic Trigger frame and the Multi-STA ACK tells us enough information.

The Basic Trigger frame
Let’s start with the Basic Trigger frame. The Trigger frames are a new type of frames in the 802.11ax standard. The main purpose of the Trigger frames is to allocate resources and solicits one or more uplink HE TB PPDUs transmissions. The Basic Trigger frame is used to solicits the uplink data from one or more non-AP STAs

The frame format for a Trigger frame is like this
Screenshot 2019-08-26 at 10.54.21

The MAC header
Screenshot 2019-08-26 at 10.59.55
The most important thing:
– Control frame, type 1 and subtype 2
– Receiver address is the broadcast address
– Transmitter address is the AP that sends this frame
– Duration; distributing the NAV timer for this TXOP to all STAs in the BSS and on the channel

The Common Info field
Screenshot 2019-08-26 at 10.59.15
The field in the Common Info field is mostly information the non-AP STAs needs to build their frame for the uplink data. But these are something to look at:
– Basic Trigger frame, type 0
– UL Length: This value describes the Length of the uplink frame and shall be put into the Legacy Signal field and Lengths bit
– AP TX Power: The non-AP STA uses this value to calculate its TX-power

The User Info field
The Basic Trigger frame consists of one User Info field pr STAs that will send uplink data. In my lab, the two non-AP STAs (Samsung S10 and Nano Kit) has assigned STA-id (association id) 2 and 3

Screenshot 2019-08-26 at 11.17.34
The most important subfield
– AID12 is the STA-id (association id) for the non-AP STA
– RU Allocation: describe which RU the STA is assigned to
– MCS; the MCS each non-AP STA should use. In this example, those two non-AP STAs will use different MCS. It is the AP that decide this value
– Target RSSI; This is the RSSI the AP want to receive each non-AP STAs uplink transmission at. Each non-AP STA calculate this value based on AP TX power from Common Info field and the RSSI it receives this Trigger frame at

RU Allocation
The RU Allocation subfield along with the UL BW subfield in the Common Info field identifies the size and the location of the RU. Table 9-31g in the IEEE802.11ax draft tells about all the possibilities
Four examples
– 9 times 26 tone RU at 20MHz, values 0-8
– 4 times 52 tone RU at 20MHz, values 37-40
– 2 times 106 tone RU at 20MHz, values 53-54
– 1 time 242 tone RU at 20MHz, value 61



Multi-STA BlockAck frame

The Multi-STA BlockAck frame is supported in uplink multi-user (UL MU). The BlockAck processes are diverse and I will only show the Multi-STA BlockAck frame

The MAC header is similar to other control frames
Screenshot 2019-08-26 at 12.29.26
Since the Multi-STA BlockAck is sent til two or more non-AP STAs the receiver address (RA) is the broadcast address.

Next is the BA Control field
Screenshot 2019-08-26 at 12.32.36As we can see it is a Multi-STA BlockAck frame and it ACKs to AID (association ID) 2 and 3. The same AID as the AIDs in the basic Trigger frame

A closer look into one of the AIDs shows
Screenshot 2019-08-26 at 12.36.43
What this basically says is that it has received a lot of A-MSDUs (or A-MPDUs) where the sequence number on the first A-MSDU (A-MPDU) was 3893 and the last one was 3891. The parameter in Missing Frame is the next frame it expects to receive in the next TXOP

If we use the Starting Sequence Number as a column in Wireshark we will see an increasing number for both AIDs
Screenshot 2019-08-26 at 12.44.26

That’s all
If we want to see all the important information on one screen in Wireshark it could look like this
Screenshot 2019-08-26 at 12.51.33

Pcap (zip):  UL OFDMA, Basic Trigger Frame and Multi-STA BlockAck.pcapng

9 thoughts on “UL OFDMA, basic Trigger Frame and Multi-STA BlockAck

  1. Thanks for your excellent articles on 802.11ax. The UL OFDMA with trigger and multi-STA BA wherein you have attached a zip file as a trace does not display the trigger frames and multi-STA BA frames as mentioned. Could you please mention if there is any trick in seeing those frames


  2. When I open the attached pcap it shows 6 frames, 3 sets of the Basic Trigger frame and the Multi-STA BA. Are you using Wireshark or another analyzer?. I use Wireshark


  3. I’d also like to thank you for your excellent writeup of 11ax. I am having the same problem as Srikanth – they just look like ethernet frames. I am using wireshark.
    Could you please tell me how to set up Wireshark to get, as you describe, “all the important info on one screen”.
    I am using the Intel AX200 STA as a sniffer – you have to tell which AID to look for, but it does work.


  4. Thank you for your guidance.
    About the attached a zip file. It incould fake ethernet header.
    It cannot display the trigger frames. The frame protocol is UDP.


    • If you are using Wireshark, and I have used an AP in sniffer mode the frames are sent to Wireshark as UDP packets.

      Click on one of the frames, right click and select «Decode as»
      Find «Peekremote».

      Please send feedback


  5. Thanks for the blogs on 802.11ax.
    I am facing the same issue on the pcap. i checked in the latest version of wireshark in linux mint and in windows 10. In both the cases i am seeing only UDP packets and not the packets as shown in your blog,


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s