File: Underlay/TunOut/TunOutUnderlay.ned
(no description)
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.
AccessRouter | (no description) |
BootstrapOracle | (no description) |
IPv4UnderlayConfigurator | Configurator of the IPv4Underlay |
OverlayAccessRouter | (no description) |
OverlayRouter | (no description) |
TunOutRouter | (no description) |
Router | (unknown -- not in documented files) |
fiberline | (no description) |
TunOutNetwork | (no description) |
Name | Type | Description |
---|---|---|
overlayType | string | |
overlayAppType | string | |
backboneRouterNum | numeric | |
accessRouterNum | numeric | |
overlayBackboneRouterNum | numeric | |
overlayAccessRouterNum | numeric | |
connectivity | numeric |
Name | Type | Description |
---|---|---|
underlayConfigurator.simulateMobility | bool | add/remove nodes in and after init phase? |
underlayConfigurator.initialOverlayTerminalNum | numeric | number of nodes created before init phase |
underlayConfigurator.targetOverlayTerminalNum | numeric | number of nodes after init phase |
underlayConfigurator.initialMobilityDelay | numeric | node creation interval in init phase |
underlayConfigurator.targetMobilityDelay | numeric | node creation/removal/migration interval after init phase |
underlayConfigurator.creationProbability | numeric | probability that a new node gets created |
underlayConfigurator.migrationProbability | numeric | probability that a node migrates |
underlayConfigurator.removalProbability | numeric | probability that a node gets removed |
underlayConfigurator.channelTypes | string | used access technologies |
tunOutRouter.parser | string | |
tunOutRouter.routingFile | string | |
tunOutRouter.tunOut.mtu | numeric | |
accessRouter[*].routingFile | string | |
overlayAccessRouter[*].IPForward | bool | |
overlayAccessRouter[*].routingFile | string | |
overlayBackboneRouter[*].IPForward | bool | |
overlayBackboneRouter[*].routingFile | string | |
bootstrapOracle.maxNumberOfKeys | numeric | |
bootstrapOracle.keyProbability | numeric |
module TunOutUnderlay parameters: overlayType: string, overlayAppType: string, backboneRouterNum: numeric, accessRouterNum: numeric, overlayBackboneRouterNum: numeric, overlayAccessRouterNum: numeric, connectivity: numeric; submodules: underlayConfigurator: IPv4UnderlayConfigurator; display: "i=block/cogwheel"; backboneRouter: Router[backboneRouterNum]; display: "i=device/server2"; tunOutRouter: TunOutRouter; display: "i=misc/globe"; accessRouter: AccessRouter[accessRouterNum]; display: "i=device/server2,gray,30"; overlayAccessRouter: OverlayAccessRouter[overlayAccessRouterNum] parameters: overlayType = overlayType, overlayAppType = overlayAppType; display: "i=device/server2,gray,30;i2=block/circle_s"; overlayBackboneRouter: OverlayRouter[overlayBackboneRouterNum] parameters: overlayType = overlayType, overlayAppType = overlayAppType; display: "i=device/server2;i2=block/circle_s"; bootstrapOracle: BootstrapOracle; display: "i=block/control"; connections nocheck: // // BACKBONE ROUTER // // connect backboneRouters with other backboneRouters for i=0..backboneRouterNum - 1, j=0..backboneRouterNum - 1 do backboneRouter[i].out++ --> fiberline --> backboneRouter[j].in++ if i < j && uniform2(0, 1, i, 1) <= connectivity; backboneRouter[i].in++ <-- fiberline <-- backboneRouter[j].out++ if i < j && uniform2(0, 1, i, 0) <= connectivity; endfor; // connect backboneRouters with overlayBackboneRouters for i=0..backboneRouterNum - 1, j=0..overlayBackboneRouterNum - 1 do backboneRouter[i].out++ --> fiberline --> overlayBackboneRouter[j].in++ if i <= j && uniform2(0, 1, i, 0) <= connectivity; backboneRouter[i].in++ <-- fiberline <-- overlayBackboneRouter[j].out++ if i <= j && uniform2(0, 1, i, 0) <= connectivity; endfor; // connect overlayBackboneRouters with backboneRouters for i=0..overlayBackboneRouterNum - 1, j=0..backboneRouterNum - 1 do overlayBackboneRouter[i].out++ --> fiberline --> backboneRouter[j].in++ if i < j && uniform2(0, 1, i, 1) <= connectivity; overlayBackboneRouter[i].in++ <-- fiberline <-- backboneRouter[j].out++ if i < j && uniform2(0, 1, i, 0) <= connectivity; endfor; // connect overlayBackboneRouters with other overlayBackboneRouters for i=0..overlayBackboneRouterNum - 1, j=0..overlayBackboneRouterNum - 1 do overlayBackboneRouter[i].out++ --> fiberline --> overlayBackboneRouter[j].in++ if i < j && uniform2(0, 1, i, 0) <= connectivity; overlayBackboneRouter[i].in++ <-- fiberline <-- overlayBackboneRouter[j].out++ if i < j && uniform2(0, 1, i, 0) <= connectivity; endfor; // // TUNOUT ROUTER // // connect tunOutRouters with backboneRouters tunOutRouter.out++ --> fiberline --> backboneRouter[intuniform2(0, backboneRouterNum - 1, 0, 1)].in++ if uniform2(0, 1, 0, 1) > overlayBackboneRouterNum / (overlayBackboneRouterNum + backboneRouterNum); tunOutRouter.in++ <-- fiberline <-- backboneRouter[intuniform2(0, backboneRouterNum - 1, 0, 0)].out++ if uniform2(0, 1, 0, 0) > overlayBackboneRouterNum / (overlayBackboneRouterNum + backboneRouterNum); // connect tunOutRouters with overlayBackboneRouters tunOutRouter.out++ --> fiberline --> overlayBackboneRouter[intuniform2(0, overlayBackboneRouterNum - 1, 0, 1)].in++ if uniform2(0, 1, 0, 0) <= overlayBackboneRouterNum / (overlayBackboneRouterNum + backboneRouterNum); tunOutRouter.in++ <-- fiberline <-- overlayBackboneRouter[intuniform2(0, overlayBackboneRouterNum - 1, 0, 0)].out++ if uniform2(0, 1, 0, 0) <= overlayBackboneRouterNum / (overlayBackboneRouterNum + backboneRouterNum); // // ACCESS ROUTER // // connect accessRouters with backboneRouters for i=0..accessRouterNum - 1 do accessRouter[i].out++ --> fiberline --> backboneRouter[intuniform2(0, backboneRouterNum - 1, 0, 1)].in++ if uniform2(0, 1, i, 1) > overlayBackboneRouterNum / (overlayBackboneRouterNum + backboneRouterNum); accessRouter[i].in++ <-- fiberline <-- backboneRouter[intuniform2(0, backboneRouterNum - 1, 0, 0)].out++ if uniform2(0, 1, i, 0) > overlayBackboneRouterNum / (overlayBackboneRouterNum + backboneRouterNum); endfor; // connect accessRouters with overlayBackboneRouters for i=0..accessRouterNum - 1 do accessRouter[i].out++ --> fiberline --> overlayBackboneRouter[intuniform2(0, overlayBackboneRouterNum - 1, 0, 1)].in++ if uniform2(0, 1, i, 0) <= overlayBackboneRouterNum / (overlayBackboneRouterNum + backboneRouterNum); accessRouter[i].in++ <-- fiberline <-- overlayBackboneRouter[intuniform2(0, overlayBackboneRouterNum - 1, 0, 0)].out++ if uniform2(0, 1, i, 0) <= overlayBackboneRouterNum / (overlayBackboneRouterNum + backboneRouterNum); endfor; // connect overlayAccessRouters with backboneRouters for i=0..overlayAccessRouterNum - 1 do overlayAccessRouter[i].out++ --> fiberline --> backboneRouter[intuniform2(0, backboneRouterNum - 1, 0, 1)].in++ if uniform2(0, 1, i, 1) > overlayBackboneRouterNum / (overlayBackboneRouterNum + backboneRouterNum); overlayAccessRouter[i].in++ <-- fiberline <-- backboneRouter[intuniform2(0, backboneRouterNum - 1, 0, 0)].out++ if uniform2(0, 1, i, 0) > overlayBackboneRouterNum / (overlayBackboneRouterNum + backboneRouterNum); endfor; // connect overlayAccessRouters with overlayBackboneRouters for i=0..overlayAccessRouterNum - 1 do overlayAccessRouter[i].out++ --> fiberline --> overlayBackboneRouter[intuniform2(0, overlayBackboneRouterNum - 1, 0, 1)].in++ if uniform2(0, 1, i, 0) <= overlayBackboneRouterNum / (overlayBackboneRouterNum + backboneRouterNum); overlayAccessRouter[i].in++ <-- fiberline <-- overlayBackboneRouter[intuniform2(0, overlayBackboneRouterNum - 1, 0, 0)].out++ if uniform2(0, 1, i, 0) <= overlayBackboneRouterNum / (overlayBackboneRouterNum + backboneRouterNum); endfor; endmodule