00001
00002
00003 secondaryRouters = 4
00004 hostsPerRouter = 4
00005
00006
00007
00008
00009
00010
00011
00012 mainRouterFile = open("mainRouter.mrt", "w")
00013
00014 mainRouterFile.write("ifconfig:\n")
00015
00016 for i in range(0,secondaryRouters):
00017 mainRouterFile.write("name: eth%i encap: Ethernet inet_addr: 192.%i.0.1\n" % (i, i))
00018 mainRouterFile.write("MTU: 1500 Metric: 1 BROADCAST MULTICAST\n")
00019
00020 mainRouterFile.write("ifconfigend.\n")
00021 mainRouterFile.write("route:\n")
00022
00023 for i in range(0, secondaryRouters):
00024 mainRouterFile.write("192.%i.0.0 192.%i.0.2 255.255.0.0 G 0 eth%i\n" % (i, i, i))
00025
00026 for i in range(0, secondaryRouters):
00027 mainRouterFile.write("225.0.0.1 192.%i.%i.2 255.255.255.255 G 0 eth%i\n" % (i, i, i))
00028
00029 mainRouterFile.write("routeend.\n")
00030 mainRouterFile.close()
00031
00032
00033
00034
00035
00036
00037
00038 for i in range(0, secondaryRouters):
00039
00040 secondaryRouterFile = open("secondaryRouter%i.mrt" % i, "w")
00041 secondaryRouterFile.write("ifconfig:\n")
00042 secondaryRouterFile.write("name: eth0 encap: Ethernet inet_addr: 192.%i.0.2\n" % (i))
00043 secondaryRouterFile.write("MTU: 1500 Metric: 1 BROADCAST MULTICAST\n")
00044
00045 for j in range(0, hostsPerRouter):
00046 secondaryRouterFile.write("name: eth%i encap: Ethernet inet_addr: 192.%i.%i.1\n" % (j + 1, i, j + 1))
00047 secondaryRouterFile.write("MTU: 1500 Metric: 1 BROADCAST MULTICAST\n")
00048
00049 secondaryRouterFile.write("ifconfigend.\n")
00050 secondaryRouterFile.write("route:\n")
00051
00052 for j in range(0, hostsPerRouter):
00053 secondaryRouterFile.write("192.%i.%i.2 * 255.255.255.255 H 0 eth%i\n" % (i, j + 1, j + 1))
00054
00055 for j in range(0, hostsPerRouter):
00056 secondaryRouterFile.write("225.0.0.1 * 255.255.255.255 H 0 eth%i\n" % (j + 1))
00057
00058 secondaryRouterFile.write("225.0.0.1 192.%i.0.1 255.255.255.255 G 0 eth0\n" % (i))
00059
00060 secondaryRouterFile.write("default: 192.%i.0.1 255.255.255.255 G 0 eth0\n" % (i))
00061 secondaryRouterFile.write("routeend.\n")
00062 secondaryRouterFile.close()
00063
00064 for j in range(0, hostsPerRouter):
00065 hostRoutingFile = open("host%i-%i.mrt" % (i, j), "w")
00066 hostRoutingFile.write("ifconfig:\n")
00067 hostRoutingFile.write("name: eth0 encap: Ethernet inet_addr: 192.%i.%i.2\n" % (i, j + 1))
00068 hostRoutingFile.write("MTU: 1500 Metric: 1 BROADCAST MULTICAST\n")
00069 hostRoutingFile.write("Groups: 225.0.0.1\n")
00070 hostRoutingFile.write("ifconfigend.\n")
00071 hostRoutingFile.write("route:\n")
00072 hostRoutingFile.write("225.0.0.1 192.%i.%i.1 255.255.255.255 G 0 eth0\n" % (i, j + 1))
00073 hostRoutingFile.write("default: 192.%i.%i.1 255.255.255.255 G 0 eth0\n" % (i, j + 1))
00074 hostRoutingFile.write("routeend.\n")
00075 hostRoutingFile.close()
00076
00077
00078
00079
00080
00081
00082 networkFile = open("multicast2.ned", "w")
00083 networkFile.write("""import "RTPHost", "Router";
00084
00085 channel ethernet
00086 delay normal(0.00015,0.00005);
00087 datarate 10*10^6;
00088 endchannel
00089
00090 module RTPMulticast2
00091 parameters:
00092 debug: bool;
00093 submodules:
00094 mainRouter: Router
00095 parameters:
00096 nodename = "mainRouter",
00097 numOfPorts = %i,
00098 routingFile = "mainRouter.mrt";
00099 gatesizes:
00100 in[%i],
00101 out[%i];
00102 """ % (secondaryRouters, secondaryRouters, secondaryRouters))
00103
00104 for i in range(0, secondaryRouters):
00105 networkFile.write("""
00106 secondaryRouter%i: Router
00107 parameters:
00108 nodename = "secondaryRouter%i",
00109 numOfPorts = %i,
00110 routingFile = "secondaryRouter%i.mrt";
00111 gatesizes:
00112 in[%i],
00113 out[%i];
00114 """ % (i, i, hostsPerRouter + 1, i, hostsPerRouter + 1, hostsPerRouter + 1))
00115
00116 for j in range(0, hostsPerRouter):
00117 networkFile.write("""
00118 host%i_%i: RTPHost
00119 parameters:
00120 """ % (i, j))
00121 networkFile.write("""
00122 debug = debug,
00123 numOfPorts = 1,
00124 nodename = "host%i-%i",
00125 routingFile = "host%i-%i.mrt";
00126 """ % (i, j, i, j))
00127
00128 networkFile.write("""
00129 connections:
00130 """)
00131
00132 for i in range(0, secondaryRouters):
00133 networkFile.write(""" mainRouter.out[%i] --> ethernet --> secondaryRouter%i.in[0],
00134 mainRouter.in[%i] <-- ethernet <-- secondaryRouter%i.out[0],
00135 """ % (i, i, i, i))
00136
00137 for j in range(0, hostsPerRouter):
00138
00139 if ((i == secondaryRouters - 1) & (j == hostsPerRouter - 1)):
00140 networkFile.write(""" secondaryRouter%i.out[%i] --> ethernet --> host%i_%i.in[0],
00141 secondaryRouter%i.in[%i] <-- ethernet <-- host%i_%i.out[0];
00142 """ % (i, j + 1, i, j, i, j + 1, i, j))
00143
00144 else:
00145 networkFile.write(""" secondaryRouter%i.out[%i] --> ethernet --> host%i_%i.in[0],
00146 secondaryRouter%i.in[%i] <-- ethernet <-- host%i_%i.out[0],
00147 """ % (i, j + 1, i, j, i, j + 1, i, j))
00148
00149 networkFile.write("""
00150 endmodule
00151
00152 network
00153 rtpNetwork: RTPMulticast2
00154 parameters:
00155 debug = true;
00156 endnetwork""")
00157
00158 networkFile.close()
00159
00160
00161
00162
00163
00164
00165 omnetppiniFile = open("omnetpp.ini", "w")
00166 omnetppiniFile.write("""
00167 [General]
00168 network = rtpNetwork
00169 ini-warnings = false
00170 total-stack-kb=27535
00171
00172 [Tkenv]
00173 default-run=1
00174 module-messages = yes
00175 Verbose-simulation = yes
00176
00177 [Parameters]
00178 *.numOfProcessors = 1
00179 *.profileName = "RTPAVProfile"
00180 *.destinationAddress = "225.0.0.1"
00181 *.portNumber = 5004
00182 *.bandwidth = 8000
00183 *.fileName = ""
00184 *.payloadType = 32
00185 *.autoOutputFileNames = true
00186 *.sessionEnterDelay = 0s
00187 *.transmissionStartDelay = 10s
00188 *.transmissionStopDelay = 3m
00189 *.sessionLeaveDelay = 10m
00190 """)
00191 omnetppiniFile.close()