Compound Module Ieee802154UWBIRNic

Package: inet.linklayer.ieee802154
File: src/inet/linklayer/ieee802154/Ieee802154UWBIRNic.ned

(no description)

IOutputQueue IdealMac 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.

Parameters:

Name Type Default value Description
interfaceTableModule string
queueType string "DropTailQueue"

DropTailQueue, a Diffserv queue, etc.

radioType string "Ieee802154UWBIRRadio"

Properties:

Name Value Description
display i=block/ifcard

Gates:

Name Direction Size Description
upperLayerIn input
upperLayerOut output
radioIn input

Unassigned submodule parameters:

Name Type Default value Description
mac.interfaceTableModule string
mac.address string "auto"

MAC address as hex string (12 hex digits), or "auto". "auto" values will be replaced by a generated MAC address in init stage 0.

mac.bitrate double
mac.mtu int 4470B
mac.headerLength int 0B

IdealMacFrame.byteLength = headerLength + packetFromUpperLayer.byteLength

mac.promiscuous bool false
mac.fullDuplex bool true

allows transmitting and receiving simultaneously (transceiver radio mode)

mac.useAck bool true
mac.ackTimeout double 100ms

Source code:

module Ieee802154UWBIRNic like IWirelessNic
{
    parameters:
        string interfaceTableModule;
        string queueType = default("DropTailQueue");    // DropTailQueue, a Diffserv queue, etc.
        string radioType = default("Ieee802154UWBIRRadio");
        *.interfaceTableModule = default(absPath(interfaceTableModule));
        @display("i=block/ifcard");
    gates:
        input upperLayerIn;
        output upperLayerOut;
        input radioIn @labels(IRadioFrame);
    submodules:
        queue: <queueType> like IOutputQueue {
            parameters:
                @display("p=100,50;q=l2queue");
        }
        mac: IdealMac {
            parameters:
                @display("p=100,150");
        }
        radio: <radioType> like IRadio {
            parameters:
                @display("p=100,250");
        }
    connections:
        upperLayerIn --> { @display("m=n"); } --> queue.in;
        queue.out --> mac.upperLayerIn;
        mac.lowerLayerOut --> radio.upperLayerIn;
        mac.upperLayerOut --> { @display("m=n"); } --> upperLayerOut;
        radioIn --> { @display("m=s"); } --> radio.radioIn;
        radio.upperLayerOut --> mac.lowerLayerIn;
}