Compound Module OverlayHost

File: Underlay/IPv4Underlay/OverlayHost.ned

(no description)

notificationBoard: NotificationBoard interfaceTable: InterfaceTable routingTable: RoutingTable app: overlayAppType like OverlayApp overlay: overlayType like Overlay udp: UDP networkLayer: NetworkLayer ppp: PPPInterface

Usage diagram:

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.

Contains the following modules:

If a module type shows up more than once, that means it has been defined in more than one NED file.

Overlay (no description)
OverlayApp (no description)
NotificationBoard (unknown -- not in documented files)
InterfaceTable (unknown -- not in documented files)
RoutingTable (unknown -- not in documented files)
UDP (unknown -- not in documented files)
NetworkLayer (unknown -- not in documented files)
PPPInterface (unknown -- not in documented files)

Parameters:

Name Type Description
IPForward bool
overlayType string
overlayAppType string
routingFile string

Gates:

Name Direction Description
in [ ] input
overlayNeighborArrowIn [ ] input
out [ ] output
overlayNeighborArrowOut [ ] output

Unassigned submodule parameters:

Name Type Description

Source code:

module OverlayHost
    parameters:
        IPForward : bool,
	overlayType : string,
	overlayAppType : string,
        routingFile : string;

    gates:
       	in: 	in[],
		overlayNeighborArrowIn[];	

       	out: 	out[],
		overlayNeighborArrowOut[];

    submodules:
	notificationBoard: NotificationBoard;
	    display: "p=60,80;i=block/control";

	interfaceTable: InterfaceTable;
            display: "p=60,150;i=block/table";

        routingTable: RoutingTable;
	    parameters:
		IPForward = IPForward,
                routerId = "",
                routingFile = routingFile;
            display: "p=60,220;i=block/table";

	app: overlayAppType like OverlayApp;
	    display: "p=250,10;i=block/segm";

	//testApp: TestApp;
	//    display: "p=250,10;i=block/segm";
		
	overlay: overlayType like Overlay
	    display: "p=250,80;i=block/network2";

        udp: UDP;
            display: "p=250,150;i=block/transport";

        networkLayer: NetworkLayer;
            parameters:
                proxyARP = false;
            gatesizes:
                ifIn[sizeof(out)+sizeof(ethOut)],
                ifOut[sizeof(out)+sizeof(ethOut)];
            display: "p=250,220;i=block/fork;q=queue";

        ppp: PPPInterface[sizeof(out)];
            display: "p=250,310,row,90;q=txQueue;i=block/ifcard";

    connections nocheck:
	app.to_overlay --> overlay.from_app;
	app.from_overlay <-- overlay.to_app;

	overlay.to_udp --> udp.from_app++;
	overlay.from_udp <-- udp.to_app++;

        udp.to_ip --> networkLayer.UDPIn;
        udp.from_ip <-- networkLayer.UDPOut;

        // 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;

endmodule