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