WiseRouteNetworkLayer

Package: inet.networklayer.wiseroute

compound module WiseRouteNetworkLayer

Provides a simple network layer.

Usage diagram

Inheritance diagram

Parameters

Name

Type

Default value

Description

interfaceTableModule

string

Properties

Name

Value

Description

display

i=block/fork

Gates

Name

Direction

Size

Description

ifIn

input

ifOut

output

transportIn

input

transportOut

output

Unassigned submodule parameters

Name

Type

Default value

Description

arp.displayStringTextFormat

string

“”

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

arp.interfaceTableModule

string

Path to the InterfaceTable module

arp.addressType

string

“ipv4”

np.displayStringTextFormat

string

“”

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

np.interfaceTableModule

string

np.headerLength

int

96b

Length of the network packet header (in bits)

np.debug

bool

false

debug switch

np.trace

bool

false

np.useSimTracer

bool

false

np.sinkAddress

string

sink node address

np.rssiThreshold

double

-50 dBm

RSSI threshold for route selection

np.routeFloodsInterval

double

0 s

If set to zero, this node does not initiate route tree building. If set to a value larger than zero, this node periodically initiates route tree building.

echo.displayStringTextFormat

string

“”

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

dp.displayStringTextFormat

string

“processed {numProcessedPackets} pk ({processedTotalLength})”

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

dp.interfaceTableModule

string

Module path to the InterfaceTable module

dp.forwardServiceRegistration

bool

true

dp.forwardProtocolRegistration

bool

true

dp.interfaceMapping

object

{}

Maps network interface names to connected submodule names (e.g. {“eth0”: “bridging”}), overrides automatically learned dispatching; * overrides all learned network interfaces, ? overrides default

dp.serviceMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ethernetmac”: “bridging”}), overrides automatically learned dispatching; * overrides all learned services, ? overrides default

dp.protocolMapping

object

{}

Maps protocols to connected submodule names (e.g. {“ipv4”: “bridging”}), overrides automatically learned dispatching; * overrides all learned protocols, ? overrides default

Source code

//
// Provides a simple network layer.
//
module WiseRouteNetworkLayer like INetworkLayer
{
    parameters:
        string interfaceTableModule;
        *.interfaceTableModule = default(absPath(this.interfaceTableModule));
        @display("i=block/fork");

    gates:
        input ifIn @labels(INetworkHeader);
        output ifOut @labels(INetworkHeader);
        input transportIn @labels(ITransportPacket/down);
        output transportOut @labels(ITransportPacket/up);

    submodules:
        arp: GlobalArp {
            parameters:
                @display("p=100,300");
        }
        np: WiseRoute {
            parameters:
                arpModule = "^.arp";
                @display("p=250,300;q=queue");
        }
        echo: EchoProtocol {
            parameters:
                @display("p=400,100");
        }
        dp: MessageDispatcher {
            parameters:
                @display("p=250,200;b=400,5");
        }

    connections allowunconnected:
        dp.out++ --> { @display("m=n"); } --> transportOut;
        dp.in++ <-- { @display("m=n"); } <-- transportIn;

        np.transportOut --> dp.in++;
        np.transportIn <-- dp.out++;

        dp.out++ --> echo.ipIn;
        dp.in++ <-- echo.ipOut;

        ifIn --> { @display("m=s"); } --> np.queueIn;
        np.queueOut --> { @display("m=s"); } --> ifOut;
}

File: src/inet/networklayer/wiseroute/WiseRouteNetworkLayer.ned