|
INET Framework for OMNeT++/OMNEST
|
00001 #!/usr/bin/python 00002 00003 secondaryRouters = 4 00004 hostsPerRouter = 4 00005 00006 00007 00008 ### 00009 # creation of routing file for main router 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 # creation of routing files for secondary routers 00035 # creation of routing files for hosts 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 # creation of network description 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 # creation of omnetpp.ini 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()