Module Interface IRadio

Package: inet.physicallayer.contract.packetlevel
File: src/inet/physicallayer/contract/packetlevel/IRadio.ned

Prototype 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 RadioFrame 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 RadioFrame to each neighbour.

Reception

Received RadioFrame messages get delivered to the radioIn gate of the radio module. If it was found to have been received correctly, it gets decapsulated and the frame 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.

IRadio

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.

Extends:

Name Type Description
IPhysicalLayer module interface

This module interface provides an abstraction for the interface of different physical layers.

Used in compound modules:

Name Type Description
IdealWirelessNic compound module

Highly abstracted wireless NIC that consists of a unit disk radio and a trivial MAC protocol. It offers simplicity for scenarios where Layer 1 and 2 effects can be completely ignored, for example testing the basic functionality of a wireless ad-hoc routing protocol.

Ieee80211Nic compound module

This NIC implements an 802.11 network interface card. It can be configured via the mgmtType parameter to act as an AP or a STA, or for ad-hoc mode.

Ieee802154NarrowbandNic compound module (no description)
Ieee802154UWBIRNic compound module (no description)
WirelessNic compound module (no description)

Properties:

Name Value Description
display i=block/fork

Signals:

Name Type Unit
receptionStateChanged long
radioModeChanged long
radioChannelChanged long
transmissionStateChanged long
listeningChanged

Source code:

//
// Prototype 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 RadioFrame 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 RadioFrame to each neighbour.
//
//
// <b>Reception</b>
//
// Received RadioFrame messages get delivered to the radioIn gate of the radio
// module. If it was found to have been received correctly, it gets decapsulated
// and the frame 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);
        @signal[listeningChanged];
        @signal[receptionStateChanged](type=long);
        @signal[transmissionStateChanged](type=long);
        @signal[radioChannelChanged](type=long);
    gates:
        input radioIn @labels(IRadioFrame);
}