Ieee80211AddbaResponse

Namespace: inet

class Ieee80211AddbaResponse

8.5.5.3 ADDBA Response frame format

Inheritance diagram

Extends

Name

Type

Description

Ieee80211ActionFrame

class

8.3.3.13 Action frame format – mgmt frame with subtype action

Fields

Name

Type

Description

id

int

mutable

bool

complete

bool

correct

bool

properlyRepresented

bool

chunkLength

b

rawBin

string[]

rawHex

string[]

regionTags

SharingRegionTagSet::TagBaseRegionTag[]

chunkLength

type

Ieee80211FrameType

type and subtype

toDS

bool

fromDS

bool

moreFragments

bool

retry

bool

powerMgmt

bool

unused

moreData

bool

unused

protectedFrame

bool

unused

order

bool

unused

durationField

simtime_t

“duration” in the Duration/ID field (-1=no duration)

AID

short

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

receiverAddress

MacAddress

aka address1 (RA)

MACArrive

simtime_t

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

chunkLength

transmitterAddress

MacAddress

aka address2 (TA)

chunkLength

address3

MacAddress

fragmentNumber

short

sequenceNumber

SequenceNumberCyclic

type

category

short

blockAckAction

uint8_t

TODO subclasses will add action subfield contents WirelessNetworkManagementAction action; // action TODO remove it

chunkLength

category

Category field is set to 3 (representing Block Ack). (1 byte)

blockAckAction

Block Ack Action field is set to 1 (representing ADDBA response). (1 byte)

dialogToken

uint8_t

The Dialog Token field value is copied from the corresponding received ADDBA Request frame. (1 byte)

statusCode

uint16_t

The Status Code field is used in a response management frame to indicate the success or failure of a requested operation. (2 bytes)

aMsduSupported

bool

The A-MSDU Supported subfield determines whether an A-MSDU may be carried in a QoS data MPDU sent under this Block Ack agreement. (1 bit)

blockAckPolicy

bool

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

tid

uint8_t

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

bufferSize

uint16_t

The Buffer Size subfield indicates the number of buffers available for this particular TID. (10 bits)

blockAckTimeoutValue

simtime_t

Block Ack Timeout Value field (2 bytes) 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.

Properties

Name

Value

Description

beforeChange

handleChange()

descriptor

readonly

existingClass

packetData

Source code

//
// 8.5.5.3 ADDBA Response frame format
//
class Ieee80211AddbaResponse extends Ieee80211ActionFrame
{
    chunkLength = LENGTH_ADDBARESP - B(4);
    category = 3; // Category field is set to 3 (representing Block Ack). (1 byte)
    blockAckAction = 1; // Block Ack Action field is set to 1 (representing ADDBA response). (1 byte)
    uint8_t dialogToken = 1; // The Dialog Token field value is copied from the corresponding received ADDBA Request frame. (1 byte)
    uint16_t statusCode; // The Status Code field is used in a response management frame to indicate the success or failure of a requested operation. (2 bytes)

    // Block Ack Parameter Set field (2 bytes)
    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. (1 bit)
    bool blockAckPolicy; // The Block Ack Policy subfield is set to 1 for immediate Block Ack and 0 for delayed Block Ack. (1 bit)
    uint8_t tid; // The TID subfield contains the value of the TC or TS for which the BlockAck is being requested. (4 bits)
    uint16_t bufferSize; // The Buffer Size subfield indicates the number of buffers available for this particular TID. (10 bits)

    // Block Ack Timeout Value field (2 bytes)
    // 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;
}

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