Packet Ieee80211AddbaRequest

File: src/inet/linklayer/ieee80211/mac/Ieee80211Frame.msg

C++ definition

Table 8-203—ADDBA Request frame Action field format -- 736p.

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Extends:

Name Type Description
Ieee80211ActionFrame packet

8.3.3.13 Action frame format -- mgmt frame with subtype action

Fields:

Name Type Description
byteLength
category short

TODO: subclasses will add action subfield contents short action @enum(WirelessNetworkManagementAction); // action TODO: remove it

blockAckAction int

representing ADDBA request

dialogToken int

nonzero, arbitrary

aMsduSupported bool

Block Ack Parameter Set field

blockAckPolicy bool

The Block Ack Policy subfield is set to 1 for immediate Block Ack and 0 for delayed Block Ack.

tid int

The TID subfield contains the value of the TC or TS for which the BlockAck is being requested.

bufferSize int

The Buffer Size subfield indicates the number of buffers available for this particular TID

blockAckTimeoutValue simtime_t

Block Ack Timeout Value field The Block Ack Timeout Value field contains the duration, in TUs, after which the Block Ack setup is terminated, if there are no frame exchanges (see 10.5.4) within this duration using this Block Ack agreement. A value of 0 disables the timeout.

_fragmentNumber int

Block Ack Starting Sequence Control The Starting Sequence Number subfield of the Block Ack Starting Sequence Control subfield contains the sequence number of the first MSDU for which this Basic BlockAckReq frame is sent. The Fragment Number subfield is set to 0.

startingSequenceNumber int

the sequence number of the first MSDU

type short

type and subtype

address3 MACAddress
fragmentNumber short
sequenceNumber uint16
transmitterAddress MACAddress

aka address2

toDS bool
fromDS bool
retry bool
moreFragments bool
duration simtime_t

TODO: rename to durationField (levy)

AID short

"id" (Association ID) in the Duration/ID field (-1=no ID)

receiverAddress MACAddress

aka address1

MACArrive simtime_t

FIXME remove it, technical data, used inside of MAC module

Source code:

//
// Table 8-203—ADDBA Request frame Action field format -- 736p.
//
packet Ieee80211AddbaRequest extends Ieee80211ActionFrame
{
    byteLength = LENGTH_ADDBAREQ / 8;
    category = 3; // representing Block Ack
    int blockAckAction = 0; // representing ADDBA request
    int dialogToken = 1; // nonzero, arbitrary

    // Block Ack Parameter Set field
    bool aMsduSupported; // The A-MSDU Supported subfield determines whether an A-MSDU may be carried in a QoS data MPDU sent under this Block Ack agreement.
    bool blockAckPolicy; // The Block Ack Policy subfield is set to 1 for immediate Block Ack and 0 for delayed Block Ack.
    int tid; // The TID subfield contains the value of the TC or TS for which the BlockAck is being requested.
    int bufferSize; // The Buffer Size subfield indicates the number of buffers available for this particular TID

    // Block Ack Timeout Value field
    // The Block Ack Timeout Value field contains the duration, in TUs, after which the Block Ack setup is
    // terminated, if there are no frame exchanges (see 10.5.4) within this duration using this Block Ack
    //  agreement. A value of 0 disables the timeout.
    simtime_t blockAckTimeoutValue;

    // Block Ack Starting Sequence Control
    // The Starting Sequence Number subfield of the Block Ack Starting Sequence Control subfield contains the sequence number of the first MSDU for which this Basic
    // BlockAckReq frame is sent. The Fragment Number subfield is set to 0.
    int _fragmentNumber = 0; // FIXME: DataOrMgmtFreme has a fragmentNumber
    int startingSequenceNumber; // the sequence number of the first MSDU

}