RadioMedium

Package: inet.physicallayer.common.packetlevel

RadioMedium

compound module

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.

propagation : like IPropagation

IPropagation: The propagation model describes how a radio signal propagates through space over time.

Source:
propagation: <propagationType> like IPropagation {
    parameters:
        @display("p=100,50");
} analogModel : like IAnalogModel

IAnalogModel: The analog model describes how the analog representation of the transmissions is turned into the...

Source:
analogModel: <analogModelType> like IAnalogModel {
    parameters:
        @display("p=100,150");
} backgroundNoise : like IRadioBackgroundNoise

IRadioBackgroundNoise: The background noise model describes the thermal noise, the cosmic background noise, and other...

Source:
backgroundNoise: <backgroundNoiseType> like IRadioBackgroundNoise if backgroundNoiseType != "" {
    parameters:
        @display("p=100,250");
} pathLoss : like IPathLoss

IPathLoss: The path loss model describes the reduction of power as the signal propagates through space.

Source:
pathLoss: <pathLossType> like IPathLoss {
    parameters:
        @display("p=300,50");
} obstacleLoss : like IObstacleLoss

IObstacleLoss: The obstacle loss model describes the reduction of power as the signal passes through physical...

Source:
obstacleLoss: <obstacleLossType> like IObstacleLoss if obstacleLossType != "" {
    parameters:
        @display("p=300,150");
} mediumLimitCache : like IMediumLimitCache

Source:
mediumLimitCache: <mediumLimitCacheType> like IMediumLimitCache {
    parameters:
        @display("p=500,50");
} communicationCache : like ICommunicationCache

Source:
communicationCache: <communicationCacheType> like ICommunicationCache {
    parameters:
        @display("p=500,250");
} neighborCache : like INeighborCache

INeighborCache: The neighbor cache model computes the affected set of receivers on the medium for a given...

Source:
neighborCache: <neighborCacheType> like INeighborCache if neighborCacheType != "" {
    parameters:
        @display("p=500,150");
}

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