Packet Ieee80211DataFrameWithSNAP

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

C++ definition

802.11 data frame with the 8-byte SNAP header (AA AA 03, 00 00 00, <2-byte EtherType>)

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
Ieee80211DataFrame packet

Format of the 802.11 data frame

Fields:

Name Type Description
byteLength
etherType int
type short

type and subtype

address4 MACAddress

optional field, exists when toDS and fromDS are true

qos uint16

TODO nobody uses this currently, only its parts like tid below...

ackPolicy int

FIXME in real life this is part of the optional qos field above...

tid uint8

FIXME in real life this is part of the optional qos field above...

aMsduPresent bool

8.2.4.5.9 A-MSDU Present subfield FIXME in real life this is part of the optional qos field above...

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:

//
// 802.11 data frame with the 8-byte SNAP header (AA AA 03, 00 00 00, <2-byte ~EtherType>)
//
packet Ieee80211DataFrameWithSNAP extends Ieee80211DataFrame
{
    byteLength = DATAFRAME_HEADER_MINLENGTH / 8 + SNAP_HEADER_BYTES; // TODO: LLC(SNAP) headers should be in a separate packet
    int etherType @enum(EtherType);
}