Ieee80211Radio

Package: inet.physicallayer.wireless.ieee80211.packetlevel

Ieee80211Radio

compound module

This radio model is part of the IEEE 802.11 physical layer model. It supports multiple channels, different operation modes, and preamble modes. It must be used in conjunction with the Ieee80211RadioMedium model or other derived models.

This model provides sensible default values for the radio parameters to be used in IEEE 802.11 simulations. It also supports switching channels via ConfigureRadioCommand, or with direct C++ function calls.

See also: Ieee80211ScalarRadio, Ieee80211DimensionalRadio.

antenna : like IAntenna

IsotropicAntenna: This antenna model describes the theoretical point source which radiates the same intensity of...

IAntenna: The antenna model describes the physical device (a part of the radio) which converts electric...

Source:
antenna: <default("IsotropicAntenna")> like IAntenna {
    parameters:
        @display("p=100,100");
} transmitter : like ITransmitter

ITransmitter: The transmitter model describes the physical process which converts packets into electric signals.

Source:
transmitter: <> like ITransmitter {
    parameters:
        @display("p=100,200");
} receiver : like IReceiver

IReceiver: The receiver model describes the physical process which converts electric signals into packets.

Source:
receiver: <> like IReceiver {
    parameters:
        @display("p=100,300");
} energyConsumer : like IEnergyConsumer

IEnergyConsumer: The energy consumer models describe the energy consumption process of devices over time.

Source:
energyConsumer: <default("")> like IEnergyConsumer if typename != "" {
    parameters:
        @display("p=100,400");
}

Inheritance diagram

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

Known subclasses

Name Type Description
Ieee80211DimensionalRadio compound module

This radio model uses dimensional transmission power (that changes over time and/or frequency) in the analog representation. It must be used in conjunction with the Ieee80211DimensionalRadioMedium model.

Ieee80211ScalarRadio compound module

This radio model uses scalar transmission power in the analog representation. It must be used in conjunction with the Ieee80211ScalarRadioMedium model.

See also: Ieee80211ScalarRadioMedium, Ieee80211ScalarTransmitter, Ieee80211ScalarReceiver, ScalarAnalogModel.

Ieee80211UnitDiskRadio compound module

This radio model uses ideal analog representation. It must be used in conjunction with the UnitDiskRadioMedium model.

Extends

Name Type Description
FlatRadioBase compound module

This module servces as a base module for flat radio models.

Parameters

Name Type Default value Description
radioMediumModule string "radioMedium"

module path of the medium module where this radio communicates

energySourceModule string ""

module path of the energy source module which provides energy to the radio

initialRadioMode string "off"
switchingTimes string "ms 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"

time parameters to switch between radio modes

sendRawBytes bool false

when true packets are serialized into a sequence of bytes before sending out

separateTransmissionParts bool false

when enabled the transmission of preamble, header and data part are simulated separately

separateReceptionParts bool false

when enabled the reception of preamble, header and data part are simulated separately

displayCommunicationRange bool false

if true communication range is displayed as a blue circle around the node

displayInterferenceRange bool false

if true interference range is displayed as a gray circle around the node

centerFrequency double 2.412GHz

center frequency of the band where the radio transmits and receives signals on the medium

bandwidth double nan MHz

bandwidth of the band where the radio transmits and receives signals on the medium

signalAnalogRepresentation string "scalar"
opMode string "g(mixed)"

operation mode

bandName string "2.4 GHz"

band name

channelNumber int 0

initial channel number within the band (TODO this is offset by 1)

crcMode string "declared"

Properties

Name Value Description
display i=block/wrxtx
class Ieee80211Radio

Gates

Name Direction Size Description
upperLayerIn input
upperLayerOut output
radioIn input

Signals

Name Type Unit
radioChannelChanged long

Statistics

Name Title Source Record Unit Interpolation Mode
radioChannel Radio channel radioChannelChanged histogram, vector sample-hold

Scheduled messages (observed)

msgkindctrltagsmsgnamecontext
omnetpp::cMessage0transmissionTimerfilled
omnetpp::cMessage0WirelessSignalreceptionTimer

Direct method calls (observed)

call tofunctioninfo
Ieee80211Macinet::ieee80211::Ieee80211Mac::receiveSignalradioModeChanged
Ieee80211Macinet::ieee80211::Ieee80211Mac::receiveSignalreceivedSignalPartChanged
Ieee80211Macinet::ieee80211::Ieee80211Mac::receiveSignalreceptionStateChanged
Ieee80211Macinet::ieee80211::Ieee80211Mac::receiveSignaltransmissionStateChanged
Ieee80211Radioinet::physicallayer::Ieee80211Radio::setRadioModesetRadioMode
Ieee80211ScalarRadioMediuminet::physicallayer::RadioMedium::addRadioaddRadio
Ieee80211ScalarRadioMediuminet::physicallayer::RadioMedium::listenOnMediumlistenOnMedium
Ieee80211ScalarRadioMediuminet::physicallayer::RadioMedium::receivePacketreceivePacket
Ieee80211ScalarRadioMediuminet::physicallayer::RadioMedium::transmitPackettransmitPacket
Ieee80211NistErrorModelinet::physicallayer::Ieee80211NistErrorModel::computePacketErrorRatecomputePacketErrorRate

Called methods (observed)

functioninfocall from
inet::physicallayer::Ieee80211Radio::setRadioModesetRadioModeIeee80211Mac, Ieee80211Radio

Incoming messages (observed)

gatemsgkindctrlsrcModuletags
radioInWirelessSignal0Ieee80211Radio
upperLayerInPacket0Ieee80211MacMacAddressInd, PacketProtocolTag, Ieee80211ModeReq, DirectionTag?, DispatchProtocolInd?, DispatchProtocolReq?, InterfaceReq?, MacAddressReq?, MulticastReq?, NetworkProtocolInd?, TransportProtocolInd?, LlcProtocolTag?
upperLayerInRequest1ConfigureRadioCommandIeee80211Mac

Outgoing messages (observed)

gatemsgkindctrldestModuletags
upperLayerOutPacket0Ieee80211MacErrorRateInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd, Ieee80211ChannelInd, Ieee80211ModeInd

Packet operations (observed)

chunkTypepacketAction
BitCountChunkinsertAtBack
ChunkpopAtBack
Ieee80211OfdmPhyHeaderinsertAtFront, popAtFront

Shared Tagging operations (observed)

tagTypetagAction
clearTags
ErrorRateIndfindTag
PacketProtocolTagaddTag, addTagIfAbsent, getTag
SignalBitrateReqfindTag
SnirIndfindTag
Ieee80211ModeIndgetTag
Ieee80211ModeReqfindTag

Source code

//
// This radio model is part of the IEEE 802.11 physical layer model. It supports
// multiple channels, different operation modes, and preamble modes. It must be
// used in conjunction with the ~Ieee80211RadioMedium model or other derived
// models.
//
// This model provides sensible default values for the radio parameters to be
// used in IEEE 802.11 simulations. It also supports switching channels via
// ~ConfigureRadioCommand, or with direct C++ function calls.
//
// @see ~Ieee80211ScalarRadio, ~Ieee80211DimensionalRadio.
//
//# TODO check this Table 18-14—Receiver performance requirements
module Ieee80211Radio extends FlatRadioBase
{
    parameters:
        string signalAnalogRepresentation @enum("scalar","dimensional") = default("scalar");
        string opMode @enum("a","b","g(erp)","g(mixed)","n(mixed-2.4Ghz)","p","ac") = default("g(mixed)"); // operation mode
        string bandName @enum("2.4 GHz","5 GHz","5 GHz (20 MHz)","5 GHz (40 MHz)","5 GHz (80 MHz)","5 GHz (160 MHz)","5.9 GHz") = default("2.4 GHz"); // band name
        int channelNumber = default(0);                                 // initial channel number within the band (TODO this is offset by 1)
        string crcMode @enum("declared","computed") = default("declared");
        transmitter.typename = default(signalAnalogRepresentation == "scalar" ? "Ieee80211ScalarTransmitter" : signalAnalogRepresentation == "dimensional" ? "Ieee80211DimensionalTransmitter" : "");
        receiver.typename = default(signalAnalogRepresentation == "scalar" ? "Ieee80211ScalarReceiver" : signalAnalogRepresentation == "dimensional" ? "Ieee80211DimensionalReceiver" : "");
        centerFrequency @unit(Hz) = default(2.412GHz);                 // the center frequency of the band is automatically set by the radio
        bandwidth @unit(Hz) = default(nan MHz);
        transmitter.preambleDuration = default(-1 s);
        transmitter.bitrate = default(11Mbps);
        transmitter.headerLength = default(192b);
        transmitter.power = default(20mW);
        receiver.bandwidth = default(22 MHz); // the highest value
        receiver.sensitivity = default(-85dBm);
        receiver.energyDetection = default(-85dBm);
        receiver.snirThreshold = default(4dB);
        *.opMode = this.opMode;
        *.bandName = this.bandName;
        *.channelNumber = this.channelNumber;
        @class(Ieee80211Radio);
        @signal[radioChannelChanged](type=long);
        @statistic[radioChannel](title="Radio channel"; source=radioChannelChanged; record=histogram,vector; interpolationmode=sample-hold);
}

File: src/inet/physicallayer/wireless/ieee80211/packetlevel/Ieee80211Radio.ned