Ieee80211PhyHeader.msg

Msg File src/inet/physicallayer/wireless/ieee80211/packetlevel/Ieee80211PhyHeader.msg

Name Type Description
Ieee80211PhyPreamble class (no description)
Ieee80211PhyHeader class (no description)
Ieee80211FhssPhyPreamble class

IEEE 802.11 14. Frequency-Hopping spread spectrum (FHSS)

Ieee80211FhssPhyHeader class (no description)
Ieee80211IrPhyPreamble class

IEEE 802.11 15. Infrared (IR) PHY

Ieee80211IrPhyHeader class (no description)
Ieee80211DsssPhyPreamble class

IEEE 802.11 16. DSSS PHY

Ieee80211DsssPhyHeader class (no description)
Ieee80211HrDsssPhyPreamble class

IEEE 802.11 17. High Rate direct sequence spread spectrum (HR/DSSS)

Ieee80211HrDsssPhyHeader class (no description)
Ieee80211OfdmPhyPreamble class

IEEE 802.11 18. Orthogonal frequency division multiplexing (OFDM)

Ieee80211OfdmPhyHeader class

The length field is a 12-bit integer indicates the number of octets in the PSDU that the MAC is currently requesting the PHY to transmit.

Ieee80211ErpOfdmPhyPreamble class

IEEE 802.11 19. Extended Rate PHY (ERP) OFDM

Ieee80211ErpOfdmPhyHeader class (no description)
Ieee80211HtPhyPreamble class

IEEE 802.11 20. High Throughput (HT)

Ieee80211HtPhyHeader class (no description)
Ieee80211VhtPhyPreamble class

IEEE 802.11 21. High Throughput (VHT)

Ieee80211VhtPhyHeader class (no description)

Source code

//
// Copyright (C) 2020 OpenSim Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later
//

import inet.common.INETDefs;
import inet.common.packet.chunk.Chunk;
import inet.transportlayer.common.CrcMode;

namespace inet::physicallayer;

class Ieee80211PhyPreamble extends FieldsChunk
{
}

class Ieee80211PhyHeader extends FieldsChunk
{
    // TODO remove this, because not all subtypes have lengthField
    B lengthField;
}

//
// IEEE 802.11 14. Frequency-Hopping spread spectrum (FHSS)
//
class Ieee80211FhssPhyPreamble extends Ieee80211PhyPreamble
{
    chunkLength = b(96);
}

class Ieee80211FhssPhyHeader extends Ieee80211PhyHeader
{
    chunkLength = b(32);
    uint16_t plw;
    uint8_t psf;
    uint16_t crc;
    CrcMode crcMode = CRC_MODE_UNDEFINED;
}

//
// IEEE 802.11 15. Infrared (IR) PHY
//
class Ieee80211IrPhyPreamble extends Ieee80211PhyPreamble
{
}

class Ieee80211IrPhyHeader extends Ieee80211PhyHeader
{
    // TODO B lengthField;
    uint16_t crc;
    CrcMode crcMode = CRC_MODE_UNDEFINED;
}

//
// IEEE 802.11 16. DSSS PHY
//
class Ieee80211DsssPhyPreamble extends Ieee80211PhyPreamble
{
    chunkLength = b(144);
}

class Ieee80211DsssPhyHeader extends Ieee80211PhyHeader
{
    chunkLength = b(32);
    uint8_t signal;
    uint8_t service;
    // TODO B lengthField;
    uint16_t crc;
    CrcMode crcMode = CRC_MODE_UNDEFINED;
}

//
// IEEE 802.11 17. High Rate direct sequence spread spectrum (HR/DSSS)
//
class Ieee80211HrDsssPhyPreamble extends Ieee80211DsssPhyPreamble
{
}

class Ieee80211HrDsssPhyHeader extends Ieee80211DsssPhyHeader
{
}

//
// IEEE 802.11 18. Orthogonal frequency division multiplexing (OFDM)
//
class Ieee80211OfdmPhyPreamble extends Ieee80211PhyPreamble
{
}

// The length field is a 12-bit integer indicates the number of
// octets in the PSDU that the MAC is currently requesting the PHY to
// transmit.
//
// The rate field (18.3.4.2 RATE field) is a 4-bit integer carries
// information about the modulation and coding.
//
// There are other fields which are not explicitly represented here,
// for e.g. Parity, Reserved, SERVICE, Pad Bits.
//
// The PSDU field must be contained as an encapsulated packet.
//
// This packet is intended to represent the whole PPDU frame in the
// IEEE 802.11 PHY. For detailed description, you may refer to 18.3.2 PLCP
// frame format, Figure 18-1—PPDU frame format in IEEE Std. 802.11-2012.
//
class Ieee80211OfdmPhyHeader extends Ieee80211PhyHeader
{
    // The PLCP header is composed of RATE (4), Reserved (1), LENGTH (12), Parity (1),
    // Tail (6) and SERVICE (16) fields.
    chunkLength = B(5);
    uint8_t rate;
    bool reserved = false;
    // TODO B lengthField;
    bool parity = false;
    uint8_t tail = 0;
    uint16_t service;
}

//
// IEEE 802.11 19. Extended Rate PHY (ERP) OFDM
//
class Ieee80211ErpOfdmPhyPreamble extends Ieee80211OfdmPhyPreamble
{
}

class Ieee80211ErpOfdmPhyHeader extends Ieee80211OfdmPhyHeader
{
}

//
// IEEE 802.11 20. High Throughput (HT)
//
class Ieee80211HtPhyPreamble extends Ieee80211PhyPreamble
{
}

class Ieee80211HtPhyHeader extends Ieee80211PhyHeader
{
}

// IEEE 802.11 21. High Throughput (VHT)
//
class Ieee80211VhtPhyPreamble extends Ieee80211PhyPreamble
{
}

class Ieee80211VhtPhyHeader extends Ieee80211PhyHeader
{
}