NED File src/underlay/reaseunderlay/topologies/topology_tiny_oversim/topology_tiny_oversim.ned
Source code:
package oversim.underlay.reaseunderlay.topologies.topology_tiny_oversim;
import inet.nodes.inet.Router;
import inet.nodes.inet.StandardHost;
channel host2edge extends ned.DatarateChannel
{
parameters:
delay = 1us;
datarate = 1Mbps;
}
channel edge2host extends ned.DatarateChannel
{
parameters:
delay = 1us;
datarate = 1Mbps;
}
channel edge2gateway extends ned.DatarateChannel
{
parameters:
delay = 1us;
datarate = 155Mbps;
}
channel gateway2core extends ned.DatarateChannel
{
parameters:
delay = 1us;
datarate = 622Mbps;
}
channel core2core extends ned.DatarateChannel
{
parameters:
delay = 1us;
datarate = 1000Mbps;
}
channel stub2stub extends ned.DatarateChannel
{
parameters:
delay = 1us;
datarate = 1000Mbps;
}
channel stub2transit extends ned.DatarateChannel
{
parameters:
delay = 1us;
datarate = 5000Mbps;
}
channel transit2transit extends ned.DatarateChannel
{
parameters:
delay = 1us;
datarate = 10000Mbps;
}
module Internet extends oversim.underlay.reaseunderlay.ReaSEUnderlayNetworkBase
{
parameters:
@Internet();
submodules:
tas0: TAS0 {
parameters:
@AS();
@display("i=misc/globe_s");
}
sas1: SAS1 {
parameters:
@AS();
@display("i=misc/cloud_s");
}
sas2: SAS2 {
parameters:
@AS();
@display("i=misc/cloud_s");
}
connections:
tas0.pppg++ <--> stub2transit <--> sas1.pppg++;
tas0.pppg++ <--> stub2transit <--> sas2.pppg++;
sas1.pppg++ <--> stub2stub <--> sas2.pppg++;
}
network ReaSEUnderlayNetwork extends Internet
{
parameters:
}
module TAS0
{
gates:
inout pppg[];
submodules:
core0: Router {
parameters:
@RL();
@CoreRouter();
@display("i=abstract/switch");
}
gw1: Router {
parameters:
@RL();
@GatewayRouter();
@display("i=abstract/router2");
}
edge2: Router {
parameters:
@RL();
@EdgeRouter();
@display("i=abstract/router");
}
edge3: Router {
parameters:
@RL();
@EdgeRouter();
@display("i=abstract/router");
}
edge4: Router {
parameters:
@RL();
@EdgeRouter();
@display("i=abstract/router");
}
edge5: Router {
parameters:
@RL();
@EdgeRouter();
@display("i=abstract/router");
}
edge6: Router {
parameters:
@RL();
@EdgeRouter();
@display("i=abstract/router");
}
host7: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host8: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host9: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host10: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host11: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host12: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host13: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host14: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host15: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host16: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host17: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host18: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host19: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host20: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host21: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host22: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
connections:
pppg++ <--> core0.pppg++;
pppg++ <--> core0.pppg++;
core0.pppg++ <--> gateway2core <--> gw1.pppg++;
gw1.pppg++ <--> edge2gateway <--> edge2.pppg++;
gw1.pppg++ <--> edge2gateway <--> edge3.pppg++;
gw1.pppg++ <--> edge2gateway <--> edge4.pppg++;
gw1.pppg++ <--> edge2gateway <--> edge5.pppg++;
gw1.pppg++ <--> edge2gateway <--> edge6.pppg++;
host7.pppg$o++ --> host2edge --> edge2.pppg$i++;
edge2.pppg$o++ --> edge2host --> host7.pppg$i++;
host8.pppg$o++ --> host2edge --> edge2.pppg$i++;
edge2.pppg$o++ --> edge2host --> host8.pppg$i++;
host9.pppg$o++ --> host2edge --> edge2.pppg$i++;
edge2.pppg$o++ --> edge2host --> host9.pppg$i++;
host10.pppg$o++ --> host2edge --> edge2.pppg$i++;
edge2.pppg$o++ --> edge2host --> host10.pppg$i++;
host11.pppg$o++ --> host2edge --> edge3.pppg$i++;
edge3.pppg$o++ --> edge2host --> host11.pppg$i++;
host12.pppg$o++ --> host2edge --> edge3.pppg$i++;
edge3.pppg$o++ --> edge2host --> host12.pppg$i++;
host13.pppg$o++ --> host2edge --> edge4.pppg$i++;
edge4.pppg$o++ --> edge2host --> host13.pppg$i++;
host14.pppg$o++ --> host2edge --> edge4.pppg$i++;
edge4.pppg$o++ --> edge2host --> host14.pppg$i++;
host15.pppg$o++ --> host2edge --> edge4.pppg$i++;
edge4.pppg$o++ --> edge2host --> host15.pppg$i++;
host16.pppg$o++ --> host2edge --> edge4.pppg$i++;
edge4.pppg$o++ --> edge2host --> host16.pppg$i++;
host17.pppg$o++ --> host2edge --> edge5.pppg$i++;
edge5.pppg$o++ --> edge2host --> host17.pppg$i++;
host18.pppg$o++ --> host2edge --> edge5.pppg$i++;
edge5.pppg$o++ --> edge2host --> host18.pppg$i++;
host19.pppg$o++ --> host2edge --> edge5.pppg$i++;
edge5.pppg$o++ --> edge2host --> host19.pppg$i++;
host20.pppg$o++ --> host2edge --> edge5.pppg$i++;
edge5.pppg$o++ --> edge2host --> host20.pppg$i++;
host21.pppg$o++ --> host2edge --> edge6.pppg$i++;
edge6.pppg$o++ --> edge2host --> host21.pppg$i++;
host22.pppg$o++ --> host2edge --> edge6.pppg$i++;
edge6.pppg$o++ --> edge2host --> host22.pppg$i++;
}
module SAS1
{
gates:
inout pppg[];
submodules:
core0: Router {
parameters:
@RL();
@CoreRouter();
@display("i=abstract/switch");
}
gw1: Router {
parameters:
@RL();
@GatewayRouter();
@display("i=abstract/router2");
}
edge2: Router {
parameters:
@RL();
@EdgeRouter();
@display("i=abstract/router");
}
edge3: Router {
parameters:
@RL();
@EdgeRouter();
@display("i=abstract/router");
}
edge4: Router {
parameters:
@RL();
@EdgeRouter();
@display("i=abstract/router");
}
edge5: Router {
parameters:
@RL();
@EdgeRouter();
@display("i=abstract/router");
}
host6: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host7: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host8: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host9: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host10: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host11: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host12: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host13: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host14: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host15: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host16: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host17: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
connections:
pppg++ <--> core0.pppg++;
pppg++ <--> core0.pppg++;
core0.pppg++ <--> gateway2core <--> gw1.pppg++;
gw1.pppg++ <--> edge2gateway <--> edge2.pppg++;
gw1.pppg++ <--> edge2gateway <--> edge3.pppg++;
gw1.pppg++ <--> edge2gateway <--> edge4.pppg++;
gw1.pppg++ <--> edge2gateway <--> edge5.pppg++;
host6.pppg$o++ --> host2edge --> edge2.pppg$i++;
edge2.pppg$o++ --> edge2host --> host6.pppg$i++;
host7.pppg$o++ --> host2edge --> edge2.pppg$i++;
edge2.pppg$o++ --> edge2host --> host7.pppg$i++;
host8.pppg$o++ --> host2edge --> edge3.pppg$i++;
edge3.pppg$o++ --> edge2host --> host8.pppg$i++;
host9.pppg$o++ --> host2edge --> edge3.pppg$i++;
edge3.pppg$o++ --> edge2host --> host9.pppg$i++;
host10.pppg$o++ --> host2edge --> edge3.pppg$i++;
edge3.pppg$o++ --> edge2host --> host10.pppg$i++;
host11.pppg$o++ --> host2edge --> edge4.pppg$i++;
edge4.pppg$o++ --> edge2host --> host11.pppg$i++;
host12.pppg$o++ --> host2edge --> edge4.pppg$i++;
edge4.pppg$o++ --> edge2host --> host12.pppg$i++;
host13.pppg$o++ --> host2edge --> edge4.pppg$i++;
edge4.pppg$o++ --> edge2host --> host13.pppg$i++;
host14.pppg$o++ --> host2edge --> edge4.pppg$i++;
edge4.pppg$o++ --> edge2host --> host14.pppg$i++;
host15.pppg$o++ --> host2edge --> edge5.pppg$i++;
edge5.pppg$o++ --> edge2host --> host15.pppg$i++;
host16.pppg$o++ --> host2edge --> edge5.pppg$i++;
edge5.pppg$o++ --> edge2host --> host16.pppg$i++;
host17.pppg$o++ --> host2edge --> edge5.pppg$i++;
edge5.pppg$o++ --> edge2host --> host17.pppg$i++;
}
module SAS2
{
gates:
inout pppg[];
submodules:
core0: Router {
parameters:
@RL();
@CoreRouter();
@display("i=abstract/switch");
}
gw1: Router {
parameters:
@RL();
@GatewayRouter();
@display("i=abstract/router2");
}
edge2: Router {
parameters:
@RL();
@EdgeRouter();
@display("i=abstract/router");
}
edge3: Router {
parameters:
@RL();
@EdgeRouter();
@display("i=abstract/router");
}
edge4: Router {
parameters:
@RL();
@EdgeRouter();
@display("i=abstract/router");
}
edge5: Router {
parameters:
@RL();
@EdgeRouter();
@display("i=abstract/router");
}
edge6: Router {
parameters:
@RL();
@EdgeRouter();
@display("i=abstract/router");
}
host7: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host8: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host9: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host10: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host11: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host12: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host13: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host14: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host15: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host16: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host17: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host18: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host19: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host20: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host21: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host22: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
host23: StandardHost {
parameters:
@RL();
@Host();
@display("i=device/laptop");
}
connections:
pppg++ <--> core0.pppg++;
pppg++ <--> core0.pppg++;
core0.pppg++ <--> gateway2core <--> gw1.pppg++;
gw1.pppg++ <--> edge2gateway <--> edge2.pppg++;
gw1.pppg++ <--> edge2gateway <--> edge3.pppg++;
gw1.pppg++ <--> edge2gateway <--> edge4.pppg++;
gw1.pppg++ <--> edge2gateway <--> edge5.pppg++;
gw1.pppg++ <--> edge2gateway <--> edge6.pppg++;
host7.pppg$o++ --> host2edge --> edge2.pppg$i++;
edge2.pppg$o++ --> edge2host --> host7.pppg$i++;
host8.pppg$o++ --> host2edge --> edge2.pppg$i++;
edge2.pppg$o++ --> edge2host --> host8.pppg$i++;
host9.pppg$o++ --> host2edge --> edge2.pppg$i++;
edge2.pppg$o++ --> edge2host --> host9.pppg$i++;
host10.pppg$o++ --> host2edge --> edge2.pppg$i++;
edge2.pppg$o++ --> edge2host --> host10.pppg$i++;
host11.pppg$o++ --> host2edge --> edge3.pppg$i++;
edge3.pppg$o++ --> edge2host --> host11.pppg$i++;
host12.pppg$o++ --> host2edge --> edge3.pppg$i++;
edge3.pppg$o++ --> edge2host --> host12.pppg$i++;
host13.pppg$o++ --> host2edge --> edge3.pppg$i++;
edge3.pppg$o++ --> edge2host --> host13.pppg$i++;
host14.pppg$o++ --> host2edge --> edge3.pppg$i++;
edge3.pppg$o++ --> edge2host --> host14.pppg$i++;
host15.pppg$o++ --> host2edge --> edge4.pppg$i++;
edge4.pppg$o++ --> edge2host --> host15.pppg$i++;
host16.pppg$o++ --> host2edge --> edge4.pppg$i++;
edge4.pppg$o++ --> edge2host --> host16.pppg$i++;
host17.pppg$o++ --> host2edge --> edge4.pppg$i++;
edge4.pppg$o++ --> edge2host --> host17.pppg$i++;
host18.pppg$o++ --> host2edge --> edge5.pppg$i++;
edge5.pppg$o++ --> edge2host --> host18.pppg$i++;
host19.pppg$o++ --> host2edge --> edge5.pppg$i++;
edge5.pppg$o++ --> edge2host --> host19.pppg$i++;
host20.pppg$o++ --> host2edge --> edge6.pppg$i++;
edge6.pppg$o++ --> edge2host --> host20.pppg$i++;
host21.pppg$o++ --> host2edge --> edge6.pppg$i++;
edge6.pppg$o++ --> edge2host --> host21.pppg$i++;
host22.pppg$o++ --> host2edge --> edge6.pppg$i++;
edge6.pppg$o++ --> edge2host --> host22.pppg$i++;
host23.pppg$o++ --> host2edge --> edge6.pppg$i++;
edge6.pppg$o++ --> edge2host --> host23.pppg$i++;
}