File: Underlay/IPv4Underlay/TunOutRouter.ned
TunOut router.
The following diagram shows usage relationships between modules, networks and channels. Unresolved module (and channel) types are missing from the diagram. Click here to see the full picture.
If a module type shows up more than once, that means it has been defined in more than one NED file.
PacketParser | Module that performs parsing of the payload of packets that are send to or received by the tun device |
TunOutDevice | TunOutDevice is a pseudo interface that allows communication with the real world through the TunOutScheduler WARNING: This does ONLY work with the combination IPv4|UDP|OverlayMessage |
NotificationBoard | (unknown -- not in documented files) |
InterfaceTable | (unknown -- not in documented files) |
RoutingTable | (unknown -- not in documented files) |
NetworkLayer | (unknown -- not in documented files) |
PPPInterface | (unknown -- not in documented files) |
If a module type shows up more than once, that means it has been defined in more than one NED file.
IPv4Underlay | The IPv4Underlay ned-file See also: IPv4UnderlayConfigurator |
Name | Type | Description |
---|---|---|
parser | string | name of the PacketParser to use |
routingFile | string | use predefined routing file if given |
Name | Direction | Description |
---|---|---|
in [ ] | input | incoming gates to router |
out [ ] | output | outgoing gates to network or host |
Name | Type | Description |
---|---|---|
tunDev.mtu | numeric | maximum transmission unit of the underlaying network |
module TunOutRouter parameters: parser: string, // name of the PacketParser to use routingFile: string; // use predefined routing file if given gates: in: in[]; // incoming gates to router out: out[]; // outgoing gates to network or host submodules: notificationBoard: NotificationBoard; display: "p=60,60;i=block/control"; interfaceTable: InterfaceTable; display: "p=150,60;i=block/table"; routingTable: RoutingTable; parameters: IPForward = true, // true if ip packets should be forwarded routerId = "auto", // id of the router routingFile = routingFile; // use predefined routing file if given display: "p=240,60;i=block/table"; packetParser: parser like PacketParser; display: "p=59,126;i=block/wheelbarrow"; networkLayer: NetworkLayer; gatesizes: ifIn[sizeof(out)+1], ifOut[sizeof(out)+1]; display: "p=200,141;i=block/fork;q=queue"; ppp: PPPInterface[sizeof(out)]; display: "p=90,257,row,110;q=l2queue;i=block/ifcard"; tunDev: TunOutDevice; display: "p=145,257,row,110;q=l2queue;i=block/ifcard"; connections nocheck: // connections to network outside for i=0..sizeof(out)-1 do in[i] --> ppp[i].physIn; out[i] <-- ppp[i].physOut; ppp[i].netwOut --> networkLayer.ifIn[i]; ppp[i].netwIn <-- networkLayer.ifOut[i]; endfor; tunDev.netwOut --> networkLayer.ifIn[sizeof(out)]; tunDev.netwIn <-- networkLayer.ifOut[sizeof(out)]; endmodule