Package: inet.physicallayer.common.packetlevel
RadioMedium
compound moduleThe medium model describes the shared physical medium where communication takes place. It keeps track of radios, noise sources, ongoing transmissions, background noise, and other ongoing noises. The medium computes when, where and how transmissions and noises arrive at receivers. It also efficiently provides the set of interfering transmissions and noises for the receivers.
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.
Known subclasses
Name | Type | Description |
---|---|---|
APSKDimensionalRadioMedium | compound module |
This radio medium model provides a hypothetical radio that simply uses one of the well-known modulations without utilizing other techiques such as forward error correction, interleaving, spreading, etc. It must be used in conjunction with the APSKDimensionalRadio model. |
APSKLayeredDimensionalRadioMedium | compound module |
This medium model is used by a simple hypothetical layered radio. |
APSKLayeredScalarRadioMedium | compound module |
This medium model is used by a simple hypothetical layered radio. |
APSKScalarRadioMedium | compound module |
This radio medium model provides a hypothetical radio that simply uses one of the well-known modulations without utilizing other techiques such as forward error correction, interleaving, spreading, etc. It must be used in conjunction with the APSKScalarRadio model. |
IdealRadioMedium | compound module |
This radio medium model provides a very simple but fast and predictable physical layer behavior. It must be used in conjunction with the IdealRadio model. |
Ieee80211LayeredDimensionalRadioMedium | compound module | (no description) |
Ieee80211LayeredScalarRadioMedium | compound module | (no description) |
Ieee80211RadioMedium | compound module |
This radio medium model is part of thee IEEE 802.11 physical layer model. It must be used in conjunction with the Ieee80211Radio model or other derived models. |
Ieee802154NarrowbandScalarRadioMedium | compound module | (no description) |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
physicalEnvironmentModule | string | "physicalEnvironment" |
module path of the physical environment model |
propagationType | string |
submodule type parameters |
|
pathLossType | string |
NED type of the path loss model |
|
obstacleLossType | string | "" |
NED type of the obstacle loss model |
analogModelType | string |
NED type of the analog model |
|
backgroundNoiseType | string | "" |
NED type of the background noise model |
mediumLimitCacheType | string | "MediumLimitCache" |
NED type of the medium limit cache model |
neighborCacheType | string | "" |
NED type of the neighbor cache model |
communicationCacheType | string | "VectorCommunicationCache" |
NED type of the communication cache model |
rangeFilter | string | "" |
filter parameters that control when radio frames are sent to receiver radios |
radioModeFilter | bool | false |
when enabled the radio medium doesn't send radio frames to a radio if it's neither in receiver nor in transceiver mode |
listeningFilter | bool | false |
when enabled the radio medium doesn't send radio frames to a radio if it listens on the channel in incompatible mode (e.g. different carrier frequency and bandwidth, different modulation) |
macAddressFilter | bool | false |
when enabled the radio medium doesn't send radio frames to a radio if it the destination mac address differs |
recordCommunicationLog | bool | false |
logging parameters |
Properties
Name | Value | Description |
---|---|---|
class | RadioMedium | |
display | i=misc/sun_s |
Signals
Name | Type | Unit |
---|---|---|
transmissionAdded | ||
radioRemoved | ||
transmissionStarted | ||
receptionEnded | ||
receptionStarted | ||
radioAdded | ||
transmissionRemoved | ||
transmissionEnded |
Unassigned submodule parameters
Name | Type | Default value | Description |
---|---|---|---|
neighborCache.refillPeriod | double |
Source code
// // The medium model describes the shared physical medium where communication // takes place. It keeps track of radios, noise sources, ongoing transmissions, // background noise, and other ongoing noises. The medium computes when, where // and how transmissions and noises arrive at receivers. It also efficiently // provides the set of interfering transmissions and noises for the receivers. // module RadioMedium like IRadioMedium { parameters: string physicalEnvironmentModule = default("physicalEnvironment"); // module path of the physical environment model // submodule type parameters string propagationType; // NED type of the propagation model string pathLossType; // NED type of the path loss model string obstacleLossType = default(""); // NED type of the obstacle loss model string analogModelType; // NED type of the analog model string backgroundNoiseType = default(""); // NED type of the background noise model string mediumLimitCacheType = default("MediumLimitCache"); // NED type of the medium limit cache model string neighborCacheType = default(""); // NED type of the neighbor cache model string communicationCacheType = default("VectorCommunicationCache"); // NED type of the communication cache model // filter parameters that control when radio frames are sent to receiver radios string rangeFilter = default(""); // when either set to 'interferenceRange' or 'communicationRange' the radio medium doesn't send radio frames to a radio if it's outside the provided range bool radioModeFilter = default(false); // when enabled the radio medium doesn't send radio frames to a radio if it's neither in receiver nor in transceiver mode bool listeningFilter = default(false); // when enabled the radio medium doesn't send radio frames to a radio if it listens on the channel in incompatible mode (e.g. different carrier frequency and bandwidth, different modulation) bool macAddressFilter = default(false); // when enabled the radio medium doesn't send radio frames to a radio if it the destination mac address differs // logging parameters bool recordCommunicationLog = default(false); // when enabled the medium writes a communication log file that contains one line per transmission and per reception @class(RadioMedium); @display("i=misc/sun_s"); @signal[radioAdded]; @signal[radioRemoved]; @signal[transmissionAdded]; @signal[transmissionRemoved]; @signal[transmissionStarted]; @signal[transmissionEnded]; @signal[receptionStarted]; @signal[receptionEnded]; submodules: propagation: <propagationType> like IPropagation { parameters: @display("p=100,50"); } analogModel: <analogModelType> like IAnalogModel { parameters: @display("p=100,150"); } backgroundNoise: <backgroundNoiseType> like IRadioBackgroundNoise if backgroundNoiseType != "" { parameters: @display("p=100,250"); } pathLoss: <pathLossType> like IPathLoss { parameters: @display("p=300,50"); } obstacleLoss: <obstacleLossType> like IObstacleLoss if obstacleLossType != "" { parameters: @display("p=300,150"); } mediumLimitCache: <mediumLimitCacheType> like IMediumLimitCache { parameters: @display("p=500,50"); } communicationCache: <communicationCacheType> like ICommunicationCache { parameters: @display("p=500,250"); } neighborCache: <neighborCacheType> like INeighborCache if neighborCacheType != "" { parameters: @display("p=500,150"); } }File: src/inet/physicallayer/common/packetlevel/RadioMedium.ned