File Overlay/Pastry/OverlayPastry.ned

Contains:

//
// Copyright (C) 2006 Institut fuer Telematik, Universitaet Karlsruhe (TH)
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
//

import
	"Pastry";
//
// Pastry
//
// @author Felix Palmen
//
module OverlayPastry

    parameters:
	keyLength: numeric,		// length of Overlay Key
	localPort: numeric,
	debugOutput: bool,		// enable debug output

	lookupNumberNextHops : numeric,
	lookupParallelPaths : numeric,
	lookupParallelRpcs : numeric,
	lookupSecure : bool,
	lookupMerge : bool,

	measureNetwInitPhase: bool,	// gather statistics when bootstrapping
	hopCountMax: numeric,		// maximum number of overlay hops
	drawOverlayTopology: bool;	// draw arrow to successor node?

    gates:
        in: from_udp;
        out: to_udp;
	in: from_app;
	out: to_app;

    submodules:
        pastry: Pastry;
	    parameters:
		keyLength = keyLength,
		localPort = localPort,
		debugOutput = debugOutput,
		lookupNumberNextHops = lookupNumberNextHops,
		lookupParallelPaths = lookupParallelPaths,
		lookupParallelRpcs = lookupParallelRpcs,
		lookupSecure = lookupSecure,
		lookupMerge = lookupMerge,
		measureNetwInitPhase = measureNetwInitPhase,
		hopCountMax = hopCountMax,
		drawOverlayTopology = drawOverlayTopology;
            display: "p=60,52;i=block/circle";
	pastryRoutingTable: PastryRoutingTable;
	    display: "p=140,68;i=block/table";
	pastryLeafSet: PastryLeafSet;
	    display: "p=220,52;i=block/table";
	pastryNeighborhoodSet: PastryNeighborhoodSet;
	    display: "p=300,68;i=block/table";

    connections:
	from_udp --> pastry.from_udp++;
	to_udp <-- pastry.to_udp++;
	from_app --> pastry.from_app;
	to_app <-- pastry.to_app;

endmodule