utils/flowmon/flowmon-bench.py
changeset 4011 2718d6239875
parent 4010 4e22072bdc58
equal deleted inserted replaced
4010:4e22072bdc58 4011:2718d6239875
    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