Compound Module TunOutRouter6

Package: oversim.underlay.inetunderlay.ipv6
File: src/underlay/inetunderlay/ipv6/TunOutRouter6.ned

TunOut router.

NotificationBoard InterfaceTable RoutingTable6 IPacketParser NetworkLayer6 PPPInterface TunOutDevice

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.

Parameters:

Name Type Default value Description
parser string

name of the PacketParser to use

Properties:

Name Value Description
node
display i=misc/globe

Gates:

Name Direction Size Description
pppg [ ] inout

incoming gates to router

Unassigned submodule parameters:

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

Source code:

//
// \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)];
}