Package: inet.physicallayer.wireless.ieee80211.packetlevel
Ieee80211Radio
compound moduleThis 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.
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)
msg | kind | ctrl | tags | msgname | context |
---|---|---|---|---|---|
omnetpp::cMessage | 0 | transmissionTimer | filled | ||
omnetpp::cMessage | 0 | WirelessSignal | receptionTimer |
Direct method calls (observed)
call to | function | info |
---|---|---|
Ieee80211Mac | inet::ieee80211::Ieee80211Mac::receiveSignal | radioModeChanged |
Ieee80211Mac | inet::ieee80211::Ieee80211Mac::receiveSignal | receivedSignalPartChanged |
Ieee80211Mac | inet::ieee80211::Ieee80211Mac::receiveSignal | receptionStateChanged |
Ieee80211Mac | inet::ieee80211::Ieee80211Mac::receiveSignal | transmissionStateChanged |
Ieee80211Radio | inet::physicallayer::Ieee80211Radio::setRadioMode | setRadioMode |
Ieee80211ScalarRadioMedium | inet::physicallayer::RadioMedium::addRadio | addRadio |
Ieee80211ScalarRadioMedium | inet::physicallayer::RadioMedium::listenOnMedium | listenOnMedium |
Ieee80211ScalarRadioMedium | inet::physicallayer::RadioMedium::receivePacket | receivePacket |
Ieee80211ScalarRadioMedium | inet::physicallayer::RadioMedium::transmitPacket | transmitPacket |
Ieee80211NistErrorModel | inet::physicallayer::Ieee80211NistErrorModel::computePacketErrorRate | computePacketErrorRate |
Called methods (observed)
function | info | call from |
---|---|---|
inet::physicallayer::Ieee80211Radio::setRadioMode | setRadioMode | Ieee80211Mac, Ieee80211Radio |
Incoming messages (observed)
gate | msg | kind | ctrl | srcModule | tags |
---|---|---|---|---|---|
radioIn | WirelessSignal | 0 | Ieee80211Radio | ||
upperLayerIn | Packet | 0 | Ieee80211Mac | MacAddressInd, PacketProtocolTag, Ieee80211ModeReq, DirectionTag?, DispatchProtocolInd?, DispatchProtocolReq?, InterfaceReq?, MacAddressReq?, MulticastReq?, NetworkProtocolInd?, TransportProtocolInd?, LlcProtocolTag? | |
upperLayerIn | Request | 1 | ConfigureRadioCommand | Ieee80211Mac |
Outgoing messages (observed)
gate | msg | kind | ctrl | destModule | tags |
---|---|---|---|---|---|
upperLayerOut | Packet | 0 | Ieee80211Mac | ErrorRateInd, PacketProtocolTag, SignalPowerInd, SignalTimeInd, SnirInd, Ieee80211ChannelInd, Ieee80211ModeInd |
Packet operations (observed)
chunkType | packetAction |
---|---|
BitCountChunk | insertAtBack |
Chunk | popAtBack |
Ieee80211OfdmPhyHeader | insertAtFront, popAtFront |
Shared Tagging operations (observed)
tagType | tagAction |
---|---|
clearTags | |
ErrorRateInd | findTag |
PacketProtocolTag | addTag, addTagIfAbsent, getTag |
SignalBitrateReq | findTag |
SnirInd | findTag |
Ieee80211ModeInd | getTag |
Ieee80211ModeReq | findTag |
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