Package: inet.physicallayer.contract.packetlevel
IRadio
module interfacePrototype 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.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Implemented by
Name | Type | Description |
---|---|---|
APSKDimensionalRadio | compound module |
This radio 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 APSKDimensionalRadioMedium model. |
APSKRadio | compound module |
This radio 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. |
APSKScalarRadio | compound module |
This radio 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 APSKScalarRadioMedium model. |
FlatRadioBase | compound module |
This module servces as a base module for flat radio models. |
IdealRadio | compound module |
This radio model provides a very simple but fast and predictable physical layer behavior. It must be used in conjunction with the IdealRadioMedium model. |
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. |
Ieee80211IdealRadio | compound module |
This radio model uses ideal analog representation. It must be used in conjunction with the IdealRadioMedium model. |
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 |
This radio model uses scalar transmission power in the analog representation. It must be used in conjunction with the Ieee80211ScalarRadioMedium model. |
Ieee802154NarrowbandScalarRadio | compound module | (no description) |
Ieee802154UWBIRRadio | compound module | (no description) |
NarrowbandRadioBase | compound module |
This module servces 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. |
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) |
Extends
Name | Type | Description |
---|---|---|
IPhysicalLayer | module interface |
This module interface provides an abstraction for the interface of different physical layers. |
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); }File: src/inet/physicallayer/contract/packetlevel/IRadio.ned