31 cmd.AddValue("Viz", "Enable visualizer") |
31 cmd.AddValue("Viz", "Enable visualizer") |
32 |
32 |
33 cmd.NumNodesSide = None |
33 cmd.NumNodesSide = None |
34 cmd.AddValue("NumNodesSide", "Grid side number of nodes (total number of nodes will be this number squared)") |
34 cmd.AddValue("NumNodesSide", "Grid side number of nodes (total number of nodes will be this number squared)") |
35 cmd.AddValue("EnableMonitor", "Set to 0 or 1 to disable/enable flow monitoring") |
35 cmd.AddValue("EnableMonitor", "Set to 0 or 1 to disable/enable flow monitoring") |
36 cmd.AddValue("EnableAsciiTrace", "Set to 0 or 1 to disable/enable ascii trace file") |
36 cmd.AddValue("EnableAsciiTrace", "Enable ascii trace, with given file name in this parameter") |
37 cmd.EnableAsciiTrace = '0' |
37 cmd.EnableAsciiTrace = None |
38 cmd.AddValue("RunNumber", "Run number (statistics)") |
38 cmd.AddValue("RunNumber", "Run number (statistics)") |
39 cmd.AddValue("Results", "Write results to the given file") |
39 cmd.AddValue("Results", "Write results to the given file") |
40 cmd.AddValue("StopTime", "Simulation stop time") |
40 cmd.AddValue("StopTime", "Simulation stop time") |
41 cmd.AddValue("FlowHops", "Number of hops each flow will traverse (default 2, must be <= NumNodesSide-1)") |
41 cmd.AddValue("FlowHops", "Number of hops each flow will traverse (default 2, must be <= NumNodesSide-1)") |
42 |
42 |
43 cmd.Parse(argv) |
43 cmd.Parse(argv) |
44 |
44 |
45 |
45 |
46 enable_monitor = int(cmd.EnableMonitor) |
46 enable_monitor = int(cmd.EnableMonitor) |
47 enable_ascii_trace = int(cmd.EnableAsciiTrace) |
|
48 run_number = int(cmd.RunNumber) |
47 run_number = int(cmd.RunNumber) |
49 if cmd.NumNodesSide is None: |
48 if cmd.NumNodesSide is None: |
50 num_nodes_side = NUM_NODES_SIDE |
49 num_nodes_side = NUM_NODES_SIDE |
51 else: |
50 else: |
52 num_nodes_side = int(cmd.NumNodesSide) |
51 num_nodes_side = int(cmd.NumNodesSide) |
132 #destaddr = get_node_address(nodes[yi][xi]) |
131 #destaddr = get_node_address(nodes[yi][xi]) |
133 #onOffHelper.SetAttribute("Remote", ns3.AddressValue(ns3.InetSocketAddress(destaddr, port))) |
132 #onOffHelper.SetAttribute("Remote", ns3.AddressValue(ns3.InetSocketAddress(destaddr, port))) |
134 #app = onOffHelper.Install(ns3.NodeContainer(nodes[yi][xi+flow_hops])) |
133 #app = onOffHelper.Install(ns3.NodeContainer(nodes[yi][xi+flow_hops])) |
135 #app.Start(ns3.Seconds(start_time_rng.GetValue())) |
134 #app.Start(ns3.Seconds(start_time_rng.GetValue())) |
136 |
135 |
137 if enable_ascii_trace: |
136 if cmd.EnableAsciiTrace is not None: |
138 print "Configure Tracing." |
137 print "Configure Tracing." |
139 ascii = ns3.ofstream("flowmon-bench.tr") |
138 ascii = ns3.ofstream(cmd.EnableAsciiTrace) |
140 ns3.PointToPointHelper.EnableAsciiAll(ascii) |
139 ns3.PointToPointHelper.EnableAsciiAll(ascii) |
141 |
140 |
142 |
141 |
143 # -- create the flow monitor, if requested -- |
142 # -- create the flow monitor, if requested -- |
144 if enable_monitor: |
143 if enable_monitor: |
183 if hasattr(cmd, "Results"): |
182 if hasattr(cmd, "Results"): |
184 monitor.SerializeToXmlFile(cmd.Results, True, True) |
183 monitor.SerializeToXmlFile(cmd.Results, True, True) |
185 else: |
184 else: |
186 print_stats(sys.stdout, monitor, classifier) |
185 print_stats(sys.stdout, monitor, classifier) |
187 |
186 |
188 if enable_ascii_trace: |
187 if cmd.EnableAsciiTrace is not None: |
189 ascii.close() |
188 ascii.close() |
190 |
189 |
191 return 0 |
190 return 0 |
192 |
191 |
193 |
192 |