TunOut router.
The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.
Name | Type | Default value | Description |
---|---|---|---|
parser | string |
name of the PacketParser to use |
Name | Value | Description |
---|---|---|
node | ||
display | i=misc/globe |
Name | Direction | Size | Description |
---|---|---|---|
pppg [ ] | inout |
incoming gates to router |
Name | Type | Default value | Description |
---|---|---|---|
routingTable6.routingTableFile | xml | ||
networkLayer.ipv6.procDelay | double | 0s | |
ppp.ppp.mtu | int | 4470 | |
tunDev.mtu | int |
maximum transmission unit of the underlaying network |
// // \TunOut router. // module TunOutRouter6 { parameters: @node(); string parser; // name of the PacketParser to use @display("i=misc/globe"); gates: inout pppg[]; // incoming gates to router submodules: notificationBoard: NotificationBoard { parameters: @display("p=60,60"); } interfaceTable: InterfaceTable { parameters: @display("p=150,60"); } routingTable6: RoutingTable6 { parameters: isRouter = true; @display("p=240,60"); } packetParser: <parser> like IPacketParser { parameters: @display("p=59,126"); } networkLayer: NetworkLayer6 { parameters: @display("p=200,141;q=queue"); gates: ifIn[sizeof(pppg)+1]; ifOut[sizeof(pppg)+1]; } ppp[sizeof(pppg)]: PPPInterface { parameters: @display("p=90,257,row,110;q=l2queue"); } tunDev: TunOutDevice { parameters: @display("p=145,257,row,110;q=l2queue"); } connections allowunconnected: // connections to network outside for i=0..sizeof(pppg)-1 { pppg[i] <--> ppp[i].phys; ppp[i].netwOut --> networkLayer.ifIn[i]; ppp[i].netwIn <-- networkLayer.ifOut[i]; } tunDev.netwOut --> networkLayer.ifIn[sizeof(pppg)]; tunDev.netwIn <-- networkLayer.ifOut[sizeof(pppg)]; }