def parse_arguments(): exper_options = get_experiment_option() parser = argparse.ArgumentParser(description='imalse') parser.add_argument('-e', '--experiment', default='TopoExperiment', help='specify the experiment. Avaliable experiments are [%s]'%(" |").join(exper_options) ) parser.add_argument('--mode', default='sim', help="specify the mode, can be ['netns3' | 'sim'], default is 'sim'. " ) parser.add_argument('--ehelp', action='store_true', help="print the help of a experiment" ) # Print Help when there is no argument if len(sys.argv) == 1: print '----------------Experment Selection Arguments------------------' parser.print_help() print '----------------Exeriment Options------------------------------' for experiment in exper_options: for mode in ['netns3','sim']: print '+++++++++Experiment:[%s] Mode:[%s]+++++++++++++++++++++++'%(experiment, mode) exper_class = experiments.experiment_factory(experiment, mode) exper = exper_class() exper.print_help() sys.exit(1) args, exper_args = parser.parse_known_args() if args.ehelp: print '+++++++++Experiment:[%s] Mode:[%s]+++++++++++++++++++++++'%(args.experiment, args.mode) exper.print_help() sys.exit(1) return args, exper_args
""" It demos the process of loading a predefined topology file. """ import settings from core.ns3.Topology import ManualTopologyNet from experiments import experiment_factory import os # SERVER_ADDR = "10.0.1.1" TopoExperiment = experiment_factory('TopoExperiment', BaseClass) from util import Namespace class ManualTopoExperiment(TopoExperiment): """In Manual Topo Experiment, You can specify and ip address for each indexing""" def initparser(self, parser): TopoExperiment.initparser(self, parser) parser.set_defaults(net_settings="net_config/net_settings.py", ) parser.add_option( '--net_settings', dest="net_settings", help='net settings file', ) def load_net_settings(self): s = {} execfile(settings.ROOT + '/' + self.options.net_settings, s) return Namespace(s)
help="print the help of a experiment" ) # Print Help when there is no argument if len(sys.argv) == 1: print '----------------Experment Selection Arguments------------------' parser.print_help() print '----------------Exeriment Options------------------------------' for experiment in exper_options: for mode in ['netns3','sim']: print '+++++++++Experiment:[%s] Mode:[%s]+++++++++++++++++++++++'%(experiment, mode) exper_class = experiments.experiment_factory(experiment, mode) exper = exper_class() exper.print_help() sys.exit(1) args, exper_args = parser.parse_known_args() if args.ehelp: print '+++++++++Experiment:[%s] Mode:[%s]+++++++++++++++++++++++'%(args.experiment, args.mode) exper.print_help() sys.exit(1) return args, exper_args args, exper_args = parse_arguments() exper_class = experiments.experiment_factory(args.experiment, args.mode) exper_class().main(exper_args)
""" Complex Network Experiment with Background Traffic This experiment will deal with heterogeneous network that consists of not only PointToPointLink but also CsmaNetwork, etc """ from __future__ import print_function, division import settings from core.ns3.NS3Config import BackgroundTrafficConfig from core.ns3.Topology import ComplexNet from experiments import experiment_factory from core.configure import gen_anomaly_dot import ns3 ManualTopoExperiment = experiment_factory("ManualTopoExperiment", BaseClass) zeros = lambda s: [[0 for i in xrange(s[1])] for j in xrange(s[0])] import copy class ComplexNetExperiment(ManualTopoExperiment): """This experiment deals with hetergenous network """ # routing protocol list, 'type':priority routing_helper_list = { "static": 0, "nix": 5, # 'olsr':10, }
""" Manual Topology Experiment with Background Traffic """ from __future__ import print_function, division import settings from core.ns3.NS3Config import BackgroundTrafficConfig from core.ns3.Topology import ManualTopologyNet from experiments import experiment_factory from core.configure import gen_anomaly_dot import ns3 import copy ManualTopoExperiment = experiment_factory('ManualTopoExperiment', BaseClass) zeros = lambda s:[[0 for i in xrange(s[1])] for j in xrange(s[0])] def get_inet_adj_mat(fname): fid = open(fname, 'r') i = -1 while True: i += 1 line = fid.readline() if not line: break if i == 0: totnode, totlink = [int(s.strip()) for s in line.rsplit()] adj_mat = zeros([totnode, totnode]) continue if i <= totnode: # ignore the position information continue
default='sim', help="specify the mode, can be ['netns3' | 'sim'], default is 'sim'. ") parser.add_argument('--ehelp', action='store_true', help="print the help of a experiment") # Print Help when there is no argument if len(sys.argv) == 1: print '----------------Experment Selection Arguments------------------' parser.print_help() print '----------------Exeriment Options------------------------------' for experiment in exper_options: for mode in ['netns3', 'sim']: print '+++++++++Experiment:[%s] Mode:[%s]+++++++++++++++++++++++' % ( experiment, mode) exper_class = experiments.experiment_factory(experiment, mode) exper = exper_class() exper.print_help() sys.exit(1) args, exper_args = parser.parse_known_args() exper_class = experiments.experiment_factory(args.experiment, args.mode) exper = exper_class() if args.ehelp: print '+++++++++Experiment:[%s] Mode:[%s]+++++++++++++++++++++++' % ( args.experiment, args.mode) exper.print_help() sys.exit(1)
""" Manual Topology Experiment with Background Traffic """ from __future__ import print_function, division import settings from core.ns3.NS3Config import BackgroundTrafficConfig from core.ns3.Topology import ManualTopologyNet from experiments import experiment_factory from core.configure import gen_anomaly_dot import ns3 import copy ManualTopoExperiment = experiment_factory('ManualTopoExperiment', BaseClass) zeros = lambda s: [[0 for i in xrange(s[1])] for j in xrange(s[0])] def get_inet_adj_mat(fname): fid = open(fname, 'r') i = -1 while True: i += 1 line = fid.readline() if not line: break if i == 0: totnode, totlink = [int(s.strip()) for s in line.rsplit()] adj_mat = zeros([totnode, totnode]) continue if i <= totnode: # ignore the position information continue