NextHopForwarding¶
Package: inet.networklayer.nexthop
simple module NextHopForwarding
A simplified next hop forwarding that routes datagrams using different kinds of network addresses.
Usage diagram¶
Inheritance diagram¶
Used in compound modules¶
Name |
Type |
Description |
|---|---|---|
compound module |
Provides a network layer for the next hop forwarding. |
Extends¶
Name |
Type |
Description |
|---|---|---|
simple module |
Base module for all INET simple modules. |
Parameters¶
Name |
Type |
Default value |
Description |
|---|---|---|---|
displayStringTextFormat |
string |
“{nextHopStatusText}” |
Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information |
interfaceTableModule |
string |
The path to the InterfaceTable module |
|
routingTableModule |
string |
||
arpModule |
string |
||
procDelay |
double |
0s |
|
hopLimit |
int |
32 |
|
headerLength |
int |
10B |
Properties¶
Name |
Value |
Description |
|---|---|---|
class |
NextHopForwarding |
|
display |
i=block/routing |
Gates¶
Name |
Direction |
Size |
Description |
|---|---|---|---|
transportIn |
input |
||
transportOut |
output |
||
queueIn |
input |
||
queueOut |
output |
Signals¶
Name |
Type |
Unit |
Description |
|---|---|---|---|
packetDropped |
|||
packetSentToUpper |
Source code¶
//
// A simplified next hop forwarding that routes
// datagrams using different kinds of network addresses.
//
simple NextHopForwarding extends SimpleModule
{
parameters:
@class(NextHopForwarding);
string interfaceTableModule; // The path to the InterfaceTable module
string routingTableModule;
string arpModule;
double procDelay @unit(s) = default(0s);
int hopLimit = default(32);
int headerLength @unit(B) = default(10B);
displayStringTextFormat = default("{nextHopStatusText}");
@display("i=block/routing");
@signal[packetDropped](type=inet::Packet);
@signal[packetSentToUpper](type=inet::Packet);
gates:
input transportIn @labels(TcpHeader,UdpHeader);
output transportOut @labels(TcpHeader,UdpHeader);
input queueIn @labels(NextHopDatagram);
output queueOut @labels(NextHopDatagram);
}