AckingWirelessInterface

Package: inet.linklayer.acking

AckingWirelessInterface

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.

The most important parameter this model accepts is the transmission range. When a radio transmits a frame, all other radios within transmission range will receive the frame correctly, and radios that are out of range will not be affected at all.

This module requires an UnitDiskRadioMedium instance in the network.

AckingMac 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
InterfaceEntry compound module (no description)

Parameters

Name Type Default value Description
displayStringTextFormat string "%a (%i)\n%m"
interfaceTableModule string
energySourceModule string ""
bitrate double

Properties

Name Value Description
class InterfaceEntry
display i=block/ifcard

Gates

Name Direction Size Description
upperLayerIn input
upperLayerOut output
radioIn input

Source code

//
// 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.
//
// The most important parameter this model accepts is the transmission range.
// When a radio transmits a frame, all other radios within transmission range
// will receive the frame correctly, and radios that are out of range will not be
// affected at all.
//
// This module requires an ~UnitDiskRadioMedium instance in the network.
//
module AckingWirelessInterface extends InterfaceEntry like IWirelessInterface
{
    parameters:
        @class(InterfaceEntry);
        @display("i=block/ifcard");
        string interfaceTableModule;
        string energySourceModule = default("");
        double bitrate @unit(bps);
        *.interfaceTableModule = default(absPath(interfaceTableModule));
        *.energySourceModule = default(absPath(energySourceModule));
        **.bitrate = bitrate;
    gates:
        input upperLayerIn;
        output upperLayerOut;
        input radioIn @labels(Signal);
    submodules:
        mac: AckingMac {
            parameters:
                @display("p=100,100");
        }
        radio: <default("UnitDiskRadio")> like IRadio {
            parameters:
                @display("p=100,200");
        }
    connections:
        upperLayerIn --> { @display("m=n"); } --> mac.upperLayerIn;
        mac.lowerLayerOut --> radio.upperLayerIn;
        mac.upperLayerOut --> { @display("m=n"); } --> upperLayerOut;
        radioIn --> { @display("m=s"); } --> radio.radioIn;
        radio.upperLayerOut --> mac.lowerLayerIn;
}

File: src/inet/linklayer/acking/AckingWirelessInterface.ned