Ieee80211BasicBlockAck

Ieee80211BasicBlockAck

class

8.3.1.9.2 Basic BlockAck variant -- 411p.

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
Ieee80211BlockAck class

8.3.1.9 BlockAck frame format -- 410p.

Fields

Name Type Description
chunkLength b
multiTid bool

Table 8-18—BlockAck frame variant encoding

compressedBitmap bool
fragmentNumber int

??

startingSequenceNumber SequenceNumber
blockAckBitmap BitVector[64]

The Block Ack Bitmap subfield is 128 octets in length and is used to indicate the received status of up to 64 MSDUs. Bit position n of the Block Ack bitmap, if equal to 1, acknowledges receipt of an MPDU with an MPDU sequence control value equal to (Block Ack Starting Sequence Control + n). Bit position n of the Block Ack bitmap, if equal to 0, indicates that an MPDU with MPDU sequence control value equal to (Block Ack Starting Sequence Control + n) has not been received. Each of the MPDU Sequence Control field and Block Ack Starting Sequence Control subfield values are treated as a 16-bit unsigned integer. For unused fragment numbers of an MSDU, the corresponding bits in the bitmap are set to 0.

tidInfo int

The TID_INFO subfield of the BA Control field of the Basic BlockAck frame contains the TID for which this BlockAck frame is sent.

type Ieee80211FrameType

type and subtype

blockAckPolicy bool

BA Control

reserved uint16_t
transmitterAddress MacAddress

aka address2 (TA)

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

mutable bool
complete bool
correct bool
properlyRepresented bool
rawBin string[]
rawHex string[]
tags RegionTagSet::cObjectRegionTag[]

Source code

//
// 8.3.1.9.2 Basic BlockAck variant -- 411p.
//
class Ieee80211BasicBlockAck extends Ieee80211BlockAck
{
    chunkLength = LENGTH_BASIC_BLOCKACK - B(4);
    multiTid = 0;
    compressedBitmap = 0;

    // The BA Information field of the Basic BlockAck frame comprises the Block Ack Starting Sequence Control
    // subfield and the Block Ack Bitmap subfield, as shown in Figure 8-26.

    int fragmentNumber = 0; // ??
    SequenceNumber startingSequenceNumber;
    // The Block Ack Bitmap subfield is 128 octets in length and is used to indicate the received status of up to
    // 64 MSDUs. Bit position n of the Block Ack bitmap, if equal to 1, acknowledges receipt of an MPDU with an
    // MPDU sequence control value equal to (Block Ack Starting Sequence Control + n). Bit position n of the
    // Block Ack bitmap, if equal to 0, indicates that an MPDU with MPDU sequence control value equal to
    // (Block Ack Starting Sequence Control + n) has not been received. Each of the MPDU Sequence Control
    // field and Block Ack Starting Sequence Control subfield values are treated as a 16-bit unsigned integer. For
    // unused fragment numbers of an MSDU, the corresponding bits in the bitmap are set to 0.
    BitVector blockAckBitmap[64]; // 64 * 16 bitmatrix

    // The TID_INFO subfield of the BA Control field of the Basic BlockAck frame contains the TID for which
    // this BlockAck frame is sent.
    int tidInfo;
}

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