IRadio

Package: inet.physicallayer.wireless.common.contract.packetlevel

module interface IRadio

Module interface for radio modules. Radio modules deal with the transmission of frames over a wireless medium (the radio medium).

Transmission

Upper layers (wireless L2 protocols) can send frames to the radio module. Frames will be encapsulated into WirelessSignal messages and distributed to other network nodes within communication range.

The global IRadioMedium module keeps track of node positions, and knows which nodes are within communication and interference distance of others (neighbour cache). When transmitting, the radio module obtains the neighbour list, and sends a copy of the WirelessSignal to each neighbour.

Reception

Received WirelessSignal messages get delivered to the radioIn gate of the radio module. If they were found to have been received correctly, they get decapsulated and the frame is sent to the upper layer.

Note: currently, the packet is also sent up if it was NOT received correctly, with its error flag set to true.

Usage diagram

Inheritance diagram

Implemented by

Name

Type

Description

ApskLayeredRadio

compound module

This radio model is part of a simple hypothetical layered radio. It produces detailed transmissions that have separate representations for all simulated domains.

ApskDimensionalRadio

compound module

(no description)

ApskRadio

compound module

This radio model provides a hypothetical radio that simply uses one of the well-known modulations without utilizing other techniques such as forward error correction, interleaving, spreading, etc.

ApskScalarRadio

compound module

(no description)

ApskUnitDiskRadio

compound module

Specializes ApskRadio to use the simplified signal representation of the unit disk signal propagation model. Suitable for simulations where computational efficiency is more important than detailed physical layer modeling.

FlatRadioBase

compound module

Serves as a base module for flat radio models.

NarrowbandRadioBase

compound module

Serves as a base module for narrowband radio models.

Radio

compound module

The radio model describes the physical device that is capable of transmitting and receiving signals on the medium. It contains an antenna model, a transmitter model, a receiver model, and an energy consumer model.

GenericDimensionalRadio

compound module

(no description)

GenericRadio

compound module

This radio is part of the generic radio architecture.

GenericScalarRadio

compound module

(no description)

GenericUnitDiskRadio

compound module

(no description)

Ieee80211OfdmRadio

compound module

(no description)

Ieee80211DimensionalRadio

compound module

(no description)

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.

Ieee80211ScalarRadio

compound module

(no description)

Ieee80211UnitDiskRadio

compound module

(no description)

Ieee802154UwbIrRadio

compound module

(no description)

Ieee802154NarrowbandDimensionalRadio

compound module

(no description)

Ieee802154NarrowbandRadio

compound module

(no description)

Ieee802154NarrowbandScalarRadio

compound module

(no description)

Ieee802154NarrowbandUnitDiskRadio

compound module

(no description)

NoiseSource

compound module

A network node that generates periodic noise transmissions that can interfere with wireless communications. Alternates between sleep and transmission states based on configurable intervals. Uses a NoiseTransmitter to create noise signals with specified duration, frequency, bandwidth, and power parameters. Useful for testing protocol robustness against interference in wireless networks.

ShortcutRadio

simple module

Implements a simple shortcut to peer radio protocol that completely bypasses the physical medium. This radio module directly sends packets to the other radio module without any physical layer processing in the radio medium. Packets received from the upper layer protocols may be lost. Physical layer overhead is simply simulated by physical header bits, preamble transmission duration, and a propagation delay.

Used in compound modules

Name

Type

Description

WirelessInterface

compound module

Implements a generic wireless network interface.

Extends

Name

Type

Description

IPhysicalLayer

module interface

Interface for the interface of different physical layers.

Properties

Name

Value

Description

display

i=block/wrxtx

Signals

Name

Type

Unit

Description

listeningChanged

long

TODO always emit 0

radioChannelChanged

long

The long is the new channel number

radioModeChanged

long

Type=inet::physicallayer::RadioMode

receivedSignalPartChanged

long

Type=IRadioSignal::SignalPart

receptionEnded

cObject

Type=IReception

receptionStarted

cObject

Type=IReception

receptionStateChanged

long

Type=inet::physicallayer::ReceptionState

transmissionEnded

cObject

Type=ITransmission

transmissionStarted

cObject

Type=ITransmission

transmissionStateChanged

long

Type=inet::physicallayer::TransmissionState

transmittedSignalPartChanged

long

Type=IRadioSignal::SignalPart

Source code

//
// Module interface for radio modules. Radio modules deal with the transmission of
// frames over a wireless medium (the radio medium).
//
// <b>Transmission</b>
//
// Upper layers (wireless L2 protocols) can send frames to the radio module.
// Frames will be encapsulated into `WirelessSignal` messages and distributed to
// other network nodes within communication range.
//
// The global ~IRadioMedium module keeps track of node positions, and knows
// which nodes are within communication and interference distance of others
// (neighbour cache). When transmitting, the radio module obtains the neighbour
// list, and sends a copy of the `WirelessSignal` to each neighbour.
//
//
// <b>Reception</b>
//
// Received `WirelessSignal` messages get delivered to the `radioIn` gate of the radio
// module. If they were found to have been received correctly, they get decapsulated
// and the frame is sent to the upper layer.
//
// Note: currently, the packet is also sent up if it was NOT received correctly,
// with its error flag set to true.
//
moduleinterface IRadio extends IPhysicalLayer
{
    parameters:
        @display("i=block/wrxtx");
        @signal[radioModeChanged](type=long);    // Type=inet::physicallayer::RadioMode
        @signal[listeningChanged](type=long);    //TODO always emit 0
        @signal[receptionStateChanged](type=long);    // Type=inet::physicallayer::ReceptionState
        @signal[transmissionStateChanged](type=long);    // Type=inet::physicallayer::TransmissionState
        @signal[radioChannelChanged](type=long);    // The long is the new channel number
        @signal[receivedSignalPartChanged](type=long);    // Type=IRadioSignal::SignalPart
        @signal[transmittedSignalPartChanged](type=long);    // Type=IRadioSignal::SignalPart
        @signal[transmissionStarted](type=cObject);     // Type=ITransmission
        @signal[transmissionEnded](type=cObject);     // Type=ITransmission
        @signal[receptionStarted](type=cObject);     // Type=IReception
        @signal[receptionEnded](type=cObject);     // Type=IReception
    gates:
        input radioIn @labels(IWirelessSignal);
}

File: src/inet/physicallayer/wireless/common/contract/packetlevel/IRadio.ned