File: Underlay/IPv4Underlay/AccessRouter.ned
Access router connects the access nets to the network backbone
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.
AccessNet | Access net connects participating hosts over an access router with the backbone |
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) |
EthernetInterface | (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 |
---|---|---|
routingFile | string | use predefined routing file if given |
Name | Direction | Description |
---|---|---|
in [ ] | input | incoming gates from overlay |
out [ ] | output | outgoing gates to router |
ethIn [ ] | input | placeholder for zero-size vector |
ethOut [ ] | output | placeholder for zero-size vector |
Name | Type | Description |
---|
module AccessRouter parameters: routingFile: string; // use predefined routing file if given gates: in: in[]; // incoming gates from overlay out: out[]; // outgoing gates to router in: ethIn[]; // placeholder for zero-size vector out: ethOut[]; // placeholder for zero-size vector 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"; accessNet: AccessNet; display: "p=330,60;i=block/cogwheeli"; networkLayer: NetworkLayer; gatesizes: ifIn[sizeof(out)+sizeof(ethOut)], ifOut[sizeof(out)+sizeof(ethOut)]; display: "p=199,141;i=block/fork;q=queue"; ppp: PPPInterface[sizeof(out)]; display: "p=90,257,row,110;q=queue;i=block/ifcard"; eth: EthernetInterface[sizeof(ethOut)]; display: "p=286,268,row,110;q=queue;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; for i=0..sizeof(ethOut)-1 do ethIn[i] --> eth[i].physIn; ethOut[i] <-- eth[i].physOut; eth[i].netwOut --> networkLayer.ifIn[sizeof(out)+i]; eth[i].netwIn <-- networkLayer.ifOut[sizeof(out)+i]; endfor; endmodule