def main(): # parameters Sim.scheduler.reset() Sim.set_debug("Node") # setup network net = Network("test2network.txt") for hostname, node in sorted(net.nodes.iteritems()): node.add_protocol(protocol="dvrouting", handler=RoutingApp(node)) n3 = net.get_node("n3") n3.add_protocol(protocol="delay", handler=DelayHandler()) p = Packet(destination_address=n3.get_address("n2"), ident=1, protocol="delay", length=1000) n2 = net.get_node("n2") Sim.scheduler.add(delay=1.2, event=p, handler=n2.send_packet) Sim.scheduler.add(delay=1.6, event=None, handler=n2.get_link("n3").down) Sim.scheduler.add(delay=1.6, event=None, handler=n3.get_link("n2").down) p = Packet(destination_address=n3.get_address("n2"), ident=2, protocol="delay", length=1000) Sim.scheduler.add(delay=6.6, event=p, handler=n2.send_packet) # run the simulation Sim.scheduler.run()
def Setup(self): #Create the ground self.world.CreateStaticBody(position=(0, -10), shapes=b2PolygonShape(box=(10000, 10))) #Make some walkers self.walkerList = [] for i in range(learningSettings.groupSize): self.walkerList.append( Walker(self.world, (i * 10, 0), learningSettings.useSimpleWalkers)) #Make a population of agents if (learningSettings.loadPopulation): self.population = Population.loadFromFile( learningSettings.populationFile) #Reduce the number of agents to the best performing ones self.population.pruneToTopAgents(learningSettings.groupSize) else: jointCount = len(self.walkerList[0].jointList) sampleNetwork = Network(jointCount + 2, jointCount, [jointCount]) self.population = Population(learningSettings.walkerCount, sampleNetwork) #If we need it, setup an environment for speciation if (learningSettings.selectionCriteria == selection.SPECIATION): self.environment = speciation.Environment() self.environment.generateAllFood(self.walkerList[0], learningSettings.foodCount, learningSettings.foodUses, learningSettings.foodEnergy)
def main(): # parameters Sim.scheduler.reset() # setup network net = Network('threenodes2.txt') # setup routes node_a = net.get_node('A') node_b = net.get_node('B') node_c = net.get_node('C') node_a.add_forwarding_entry(address=node_b.get_address('A'), link=node_a.links[0]) node_b.add_forwarding_entry(address=node_c.get_address('B'), link=node_b.links[0]) # setup app d = DelayHandler() net.nodes['A'].add_protocol(protocol='delay', handler=d) net.nodes['B'].add_protocol(protocol='delay', handler=d) net.nodes['C'].add_protocol(protocol='delay', handler=d) # send one packet for i in range(1000): p = Packet(destination_address=node_c.get_address('B'), ident=i, protocol='delay', length=1000) Sim.scheduler.add(delay=i * .008, event=p, handler=node_a.send_packet) # run the simulation Sim.scheduler.run()
def part2(config): Sim.scheduler.reset() # setup network net = Network(config) # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n3 = net.get_node('n3') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n1.add_forwarding_entry(address=n3.get_address('n2'), link=n1.links[0]) n2.add_forwarding_entry(address=n3.get_address('n2'), link=n2.links[1]) # setup app d = DelayHandler() net.nodes['n2'].add_protocol(protocol="delay", handler=d) net.nodes['n3'].add_protocol(protocol='delay', handler=d) # send one packet for i in range(0,1000): Sim.scheduler.add(delay=i * 0.03125, event = Packet(destination_address=n3.get_address('n2'), ident=i, protocol='delay', length=1000), handler=n1.send_packet ) # p1 = Packet(destination_address=n2.get_address('n1'), ident=1, protocol='delay', length=1000) # Sim.scheduler.add(delay=0, event=p1, handler=n1.send_packet) # run the simulation Sim.scheduler.run()
def main(): d = DelayHandler() for i in range(1, 4): Sim.scheduler.reset() net = Network('./threenodes' + str(i) + '.txt') n1 = net.get_node('n1') n2 = net.get_node('n2') n3 = net.get_node('n3') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n1.add_forwarding_entry(address=n3.get_address('n2'), link=n1.links[0]) n2.add_forwarding_entry(address=n3.get_address('n2'), link=n2.links[1]) net.nodes['n3'].add_protocol(protocol="delay", handler=d) n1_transmission_delay = 8000.0 / n1.links[0].bandwidth for j in range(0, 1001): protocol = None if (j > 995): protocol = 'delay' packet = Packet(destination_address=n3.get_address('n2'), ident=j, protocol=protocol, length=1000) delay = j * n1_transmission_delay Sim.scheduler.add(delay=delay, event=packet, handler=n1.send_packet) Sim.scheduler.run() print("\n")
def main(): # parameters Sim.scheduler.reset() # setup network net = Network('../networks/one-hop.txt') # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) # setup app d = DelayHandler() net.nodes['n2'].add_protocol(protocol="delay", handler=d) # setup packet generator destination = n2.get_address('n1') max_rate = 1000000 // (1000 * 8) load = 0.8 * max_rate g = Generator(node=n1, destination=destination, load=load, duration=10) Sim.scheduler.add(delay=0, event='generate', handler=g.handle) # run the simulation Sim.scheduler.run()
def part1_2(): # parameters Sim.scheduler.reset() # setup network net = Network('../networks/lab1/2nodes-2.txt') # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) # setup app d = DelayHandler() net.nodes['n2'].add_protocol(protocol="delay", handler=d) # send one packet p = Packet(destination_address=n2.get_address('n1'), ident=1, protocol='delay', length=1000) Sim.scheduler.add(delay=0, event=p, handler=n1.send_packet) # run the simulation Sim.scheduler.run()
def main(): # parameters Sim.scheduler.reset() Sim.set_debug(True) # setup network net = Network('../networks/five-nodes.txt') # get nodes n1 = net.get_node('n1') n2 = net.get_node('n2') n3 = net.get_node('n3') n4 = net.get_node('n4') n5 = net.get_node('n5') # setup broadcast application b1 = BroadcastApp(n1) n1.add_protocol(protocol="broadcast", handler=b1) b2 = BroadcastApp(n2) n2.add_protocol(protocol="broadcast", handler=b2) b3 = BroadcastApp(n3) n3.add_protocol(protocol="broadcast", handler=b3) b4 = BroadcastApp(n4) n4.add_protocol(protocol="broadcast", handler=b4) b5 = BroadcastApp(n5) n5.add_protocol(protocol="broadcast", handler=b5) # send a broadcast packet from 1 with TTL 2, so everyone should get it p = Packet(source_address=n1.get_address('n2'), destination_address=0, ident=1, ttl=2, protocol='broadcast', length=100) Sim.scheduler.add(delay=0, event=p, handler=n1.send_packet) # send a broadcast packet from 1 with TTL 1, so just nodes 2 and 3 # should get it p = Packet(source_address=n1.get_address('n2'), destination_address=0, ident=2, ttl=1, protocol='broadcast', length=100) print("this is an address of n2", n1.get_address('n3')) Sim.scheduler.add(delay=1, event=p, handler=n1.send_packet) # send a broadcast packet from 3 with TTL 1, so just nodes 1, 4, and 5 # should get it p = Packet(source_address=n3.get_address('n1'), destination_address=0, ident=3, ttl=1, protocol='broadcast', length=100) Sim.scheduler.add(delay=2, event=p, handler=n3.send_packet) # run the simulation Sim.scheduler.run()
def run_five_nodes_line(): network = Network('./networks/five-nodes-line.txt') n1 = network.get_node('n1') n2 = network.get_node('n2') n3 = network.get_node('n3') n4 = network.get_node('n4') n5 = network.get_node('n5') run([n1, n2, n3, n4, n5])
def setup_network(config_path): Sim.scheduler.reset() network = Network(config_path) n1 = network.get_node('n1') n2 = network.get_node('n2') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) return network, n1, n2
def main(): # parameters Sim.scheduler.reset() Sim.set_debug("Node") # setup network net = Network("test3network.txt") for hostname, node in sorted(net.nodes.iteritems()): node.add_protocol(protocol="dvrouting", handler=RoutingApp(node)) n7 = net.get_node("n7") n7.add_protocol(protocol="delay", handler=DelayHandler()) n10 = net.get_node("n10") n10.add_protocol(protocol="delay", handler=DelayHandler()) n15 = net.get_node("n15") n15.add_protocol(protocol="delay", handler=DelayHandler()) n8 = net.get_node("n8") n11 = net.get_node("n11") n12 = net.get_node("n12") p1 = Packet(destination_address=n7.get_address("n6"), ident=1, protocol="delay", length=1000) Sim.scheduler.add(delay=4.2, event=p1, handler=n12.send_packet) p3 = Packet(destination_address=n15.get_address("n14"), ident=2, protocol="delay", length=1000) Sim.scheduler.add(delay=4.3, event=p3, handler=n11.send_packet) p2 = Packet(destination_address=n10.get_address("n1"), ident=3, protocol="delay", length=1000) Sim.scheduler.add(delay=4.4, event=p2, handler=n8.send_packet) n2 = net.get_node("n2") Sim.scheduler.add(delay=4.8, event=None, handler=n2.get_link("n8").down) Sim.scheduler.add(delay=4.8, event=None, handler=n8.get_link("n2").down) p4 = Packet(destination_address=n10.get_address("n1"), ident=4, protocol="delay", length=1000) Sim.scheduler.add(delay=10.4, event=p4, handler=n8.send_packet) Sim.scheduler.add(delay=10.8, event=None, handler=n2.get_link("n8").up) Sim.scheduler.add(delay=10.8, event=None, handler=n8.get_link("n2").up) p5 = Packet(destination_address=n10.get_address("n1"), ident=5, protocol="delay", length=1000) Sim.scheduler.add(delay=16.4, event=p5, handler=n8.send_packet) # run the simulation Sim.scheduler.run()
def run(self): drop_packets = [14000, 26000, 28000] Sim.set_debug('Plot') # setup network net = Network('basic.txt') # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) # setup transport t1 = Transport(n1) t2 = Transport(n2) plotter = Plotter() for i in range(0, 4): application = AppHandler(self.filename) Sim.scheduler.reset() Sim.files = {} # setup connection c1 = TCP(t1, n1.get_address('n2'), 1, n2.get_address('n1'), 1, application, fast_retransmit=True, drop=drop_packets[:i]) TCP(t2, n2.get_address('n1'), 1, n1.get_address('n2'), 1, application, fast_retransmit=True) # send a file with open(self.filename, 'rb') as f: while True: data = f.read() if not data: break Sim.scheduler.add(delay=0, event=data, handler=c1.send) Sim.scheduler.run() for filename, file in Sim.files.iteritems(): file.close() plotter.sequence("sequence" + str(i + 1) + ".png") plotter.cwnd("cwnd" + str(i + 1) + ".png") self.diff()
def run(self): # parameters Sim.scheduler.reset() Sim.set_debug('AppHandler') Sim.set_debug('TCP') Sim.set_debug('Plot') # setup network net = Network('./networks/one-hop.txt') net.loss(self.loss) # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) # setup transport t1 = Transport(n1) t2 = Transport(n2) # setup application a = AppHandler(self.filename) # setup connection c1 = TCP(t1, n1.get_address('n2'), 1, n2.get_address('n1'), 1, a, window=self.window, drop=self.drops) c2 = TCP(t2, n2.get_address('n1'), 1, n1.get_address('n2'), 1, a, window=self.window, drop=self.drops) # setup fast retransmit if self.fast_retransmit: c1.set_fast_retransmit_enabled(True) c2.set_fast_retransmit_enabled(True) # send a file with open(self.filename, 'rb') as f: while True: data = f.read(1000) if not data: break Sim.scheduler.add(delay=0, event=data, handler=c1.send) # run the simulation Sim.scheduler.run()
def setup_network(config_path): Sim.scheduler.reset() network = Network(config_path) n1 = network.get_node('n1') n2 = network.get_node('n2') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) delay_handler = DelayHandler() network.nodes['n2'].add_protocol(protocol='delay', handler=delay_handler) return n1, n2
def main(): # parameters Sim.scheduler.reset() # setup network #net = Network('./networks/five-nodes-line.txt') #net = Network('./networks/five-nodes-ring.txt') net = Network('./networks/fifteen-nodes.txt') # Setup broadcast protocol for all nodes in the network packet_count = 1 for k, n in net.nodes.iteritems(): b = BroadcastApp(n) ph = PacketHandler(k) n.add_protocol(protocol="broadcast", handler=b) n.add_protocol(protocol="transmit", handler=ph) n.init_routing() pbody = { "hostname": n.hostname, "dv": n.get_distance_vector() } p = Packet( destination_address=0, ident=packet_count, ttl=1, protocol='broadcast', body=pbody) Sim.scheduler.add(delay=0, event=p, handler=n.send_packet) packet_count = packet_count + 1 # Send a packet after everything has been setup n1 = net.get_node('n1') n4 = net.get_node('n4') n5 = net.get_node('n5') daddr = 5 p = Packet(destination_address=daddr, ident=2, protocol='transmit', length=1000) Sim.scheduler.add(delay=5, event=p, handler=n1.send_packet) if True: # Take a link down (between n5 and n1) Sim.scheduler.add(delay=10, event=None, handler=net.get_link(daddr-1).down) Sim.scheduler.add(delay=10, event=None, handler=net.get_link(daddr-1).down) # Send a packet p = Packet(destination_address=daddr, ident=3, protocol='transmit', length=1000) Sim.scheduler.add(delay=20, event=p, handler=n1.send_packet) # Bring the link back up Sim.scheduler.add(delay=30, event=None, handler=net.get_link(daddr-1).up) Sim.scheduler.add(delay=30, event=None, handler=net.get_link(daddr-1).up) # Send a packet p = Packet(destination_address=daddr, ident=2, protocol='transmit', length=1000) Sim.scheduler.add(delay=40, event=p, handler=n1.send_packet) # run the simulation Sim.scheduler.run()
def run(self): # parameters Sim.scheduler.reset() # setup network net = Network('experiment.txt') net.loss(self.loss) # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) # setup transport t1 = Transport(n1) t2 = Transport(n2) # setup application a = AppHandler(self.filename) # setup connection c1 = TCP(t1, n1.get_address('n2'), 1, n2.get_address('n1'), 1, a, window=self.window, fast_retransmit=self.fast_retransmit, measure=True) TCP(t2, n2.get_address('n1'), 1, n1.get_address('n2'), 1, a, window=self.window, fast_retransmit=self.fast_retransmit, measure=True) # send a file with open(self.filename, 'rb') as f: while True: data = f.read() if not data: break Sim.scheduler.add(delay=0, event=data, handler=c1.send) Sim.scheduler.run() result_file = open("results.txt", "r") results = result_file.read() result_file.close() f = open("experiment.csv", "a") f.write(str(self.window) + "," + results + "\n")
def run(self, janela, perda, fila, fast): self.filename = fila loss = perda Sim.trace('Trans', "It is %s that I am using fast transmit." % (fast)) # parameters Sim.scheduler.reset() Sim.set_debug('AppHandler') Sim.set_debug('TCP') Sim.set_debug('Trans') # setup network net = Network('./network.txt') net.loss(loss) # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') net.set_queue(n1.links[0], "100") net.set_queue(n2.links[0], "100") n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) # setup transport t1 = Transport(n1) t2 = Transport(n2) # setup application a = AppHandler(self.filename) # setup connection c1 = TCP(t1, n1.get_address('n2'), 1, n2.get_address('n1'), 1, a, janela, fast) c2 = TCP(t2, n2.get_address('n1'), 1, n1.get_address('n2'), 1, a, janela, fast) # send a file with open(self.filename, 'rb') as f: while True: data = f.read(1000) if not data: break Sim.scheduler.add(delay=0, event=data, handler=c1.send) # run the simulation Sim.scheduler.run() self.diff() self.filename = None return Sim.scheduler.current_time()
def run(self): # parameters Sim.scheduler.reset() Sim.set_debug('AppHandler') Sim.set_debug('TCP') # setup network net = Network('network.txt') net.loss(self.loss) # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) # setup transport t1 = Transport(n1) t2 = Transport(n2) # setup application a = AppHandler(self.filename) # setup connection c1 = TCP(t1, n1.get_address('n2'), 1, n2.get_address('n1'), 1, a, window=self.window, fast_retransmit=self.fast_retransmit) c2 = TCP(t2, n2.get_address('n1'), 1, n1.get_address('n2'), 1, a, window=self.window, fast_retransmit=self.fast_retransmit) # send a file with open(self.filename, 'rb') as f: while True: data = f.read(10000) if not data: break Sim.scheduler.add(delay=0, event=data, handler=c1.send) # run the simulation Sim.scheduler.run() if self.print_queueing_delay: print('average queueing delay: {}'.format( c2.total_queueing_delay / c2.total_packets_received))
def setupNetwork(): # parameters Sim.scheduler.reset() # setup network net = Network('../networks/3.txt') # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) return n1, n2, net
def run(self): # parameters Sim.scheduler.reset() Sim.set_debug('AppHandler') Sim.set_debug('TCP') Sim.set_debug('Plot') # setup network net = Network('basic.txt') net.loss(self.loss) # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) # setup transport t1 = Transport(n1) t2 = Transport(n2) # setup application a = AppHandler(self.filename) # setup connection c1 = TCP(t1, n1.get_address('n2'), 1, n2.get_address('n1'), 1, a, window=self.window) TCP(t2, n2.get_address('n1'), 1, n1.get_address('n2'), 1, a, window=self.window) # send a file with open(self.filename, 'rb') as f: while True: data = f.read() if not data: break Sim.scheduler.add(delay=0, event=data, handler=c1.send) Sim.scheduler.run()
def setupNetwork(path): # parameters Sim.scheduler.reset() # setup network net = Network(path) # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) # setup app d = DelayHandler() net.nodes['n2'].add_protocol(protocol="delay", handler=d) return n1, n2, net
def main(): # parameters Sim.scheduler.reset() # setup network net = Network('../networks/one-hop.txt') # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) # setup app d = DelayHandler() net.nodes['n2'].add_protocol(protocol="delay", handler=d) # send one packet p = Packet(destination_address=n2.get_address('n1'), ident=1, protocol='delay', length=1000) Sim.scheduler.add(delay=0, event=p, handler=n1.send_packet) # take the link down Sim.scheduler.add(delay=1, event=None, handler=n1.get_link('n2').down) # send one packet (it won't go through) p = Packet(destination_address=n2.get_address('n1'), ident=1, protocol='delay', length=1000) Sim.scheduler.add(delay=1.1, event=p, handler=n1.send_packet) # bring the link up Sim.scheduler.add(delay=2, event=None, handler=n1.get_link('n2').up) # send one packet (and now it goes through) p = Packet(destination_address=n2.get_address('n1'), ident=1, protocol='delay', length=1000) Sim.scheduler.add(delay=2.1, event=p, handler=n1.send_packet) # run the simulation Sim.scheduler.run()
def run_fifteen_nodes(): network = Network('./networks/fifteen-nodes.txt') n1 = network.get_node('n1') n2 = network.get_node('n2') n3 = network.get_node('n3') n4 = network.get_node('n4') n5 = network.get_node('n5') n6 = network.get_node('n6') n7 = network.get_node('n7') n8 = network.get_node('n8') n9 = network.get_node('n9') n10 = network.get_node('n10') n11 = network.get_node('n11') n12 = network.get_node('n12') n13 = network.get_node('n13') n14 = network.get_node('n14') n15 = network.get_node('n15') run([n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15])
def exp3(): # parameters Sim.scheduler.reset() Sim.set_debug(True) # setup network net = Network('../networks/l4e3.txt') # get nodes n1 = net.get_node('n1') n2 = net.get_node('n2') n3 = net.get_node('n3') n4 = net.get_node('n4') n5 = net.get_node('n5') n6 = net.get_node('n6') n7 = net.get_node('n7') n8 = net.get_node('n8') n9 = net.get_node('n9') n10 = net.get_node('n10') n11 = net.get_node('n11') n12 = net.get_node('n12') n13 = net.get_node('n13') n14 = net.get_node('n14') n15 = net.get_node('n15') # setup broadcast application p_setup(n1) p_setup(n2) p_setup(n3) p_setup(n4) p_setup(n5) p_setup(n6) p_setup(n7) p_setup(n8) p_setup(n9) p_setup(n10) p_setup(n11) p_setup(n12) p_setup(n13) p_setup(n14) p_setup(n15) # run the simulation Sim.scheduler.run()
def part3(load): Sim.scheduler.reset() net = Network('../networks/one-hop.txt') n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) d = DelayHandler() net.nodes['n2'].add_protocol(protocol="delay", handler=d) destination = n2.get_address('n1') max_rate = 1000000 // (1000 * 8) load = load * max_rate g = Generator(node=n1, destination=destination, load=load, duration=60) Sim.scheduler.add(delay=0, event='generate', handler=g.handle) Sim.scheduler.run()
def main(): # parameters Sim.scheduler.reset() # setup network net = Network('twonodes3.txt') # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) # setup app d = DelayHandler() net.nodes['n2'].add_protocol(protocol="delay", handler=d) # send one packet p1 = Packet(destination_address=n2.get_address('n1'), ident=1, protocol='delay', length=1000) Sim.scheduler.add(delay=0, event=p1, handler=n1.send_packet) p2 = Packet(destination_address=n2.get_address('n1'), ident=2, protocol='delay', length=1000) Sim.scheduler.add(delay=0, event=p2, handler=n1.send_packet) p3 = Packet(destination_address=n2.get_address('n1'), ident=3, protocol='delay', length=1000) Sim.scheduler.add(delay=0, event=p3, handler=n1.send_packet) p4 = Packet(destination_address=n2.get_address('n1'), ident=4, protocol='delay', length=1000) Sim.scheduler.add(delay=2, event=p4, handler=n1.send_packet) # run the simulation Sim.scheduler.run()
def main(): global f # setup network net = Network('./queuetest.txt') # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) # setup app d = DelayHandler() net.nodes['n2'].add_protocol(protocol="delay", handler=d) duration = 30 timer = 0 for i in range(0, len(network_loads)): # parameters Sim.scheduler.reset() # setup packet generator destination = n2.get_address('n1') max_rate = 1000000 // (1000 * 8) load = network_loads[i] * max_rate g = Generator(node=n1, destination=destination, load=load, duration=duration) Sim.scheduler.add(delay=0, event='generate', handler=g.handle) f = open("queueingtest" + str(i + 1) + ".csv", "w") # run the simulation Sim.scheduler.run() timer += duration f.close()
def part2_1(): # parameters Sim.scheduler.reset() # setup network net = Network('../networks/lab1/3nodes-1.txt') # setup routes n1 = net.get_node('n1') n2 = net.get_node('n2') n3 = net.get_node('n3') n1.add_forwarding_entry(address=n3.get_address('n1'), link=n1.links[0]) n1.add_forwarding_entry(address=n3.get_address('n2'), link=n1.links[0]) n2.add_forwarding_entry(address=n3.get_address('n2'), link=n2.links[0]) # setup app d2 = ForwardHandler() net.nodes['n2'].add_protocol(protocol="delay", handler=d2) d3 = DelayHandler() net.nodes['n3'].add_protocol(protocol="delay", handler=d3) # send one packet p1 = Packet(destination_address=n3.get_address('n2'), ident=1, protocol='delay', length=1000) Sim.scheduler.add(delay=0, event=p1, handler=n1.send_packet) # p2 = Packet(destination_address=n2.get_address('n1'), ident=2, protocol='delay', length=1000) # Sim.scheduler.add(delay=0, event=p2, handler=n1.send_packet) # p3 = Packet(destination_address=n2.get_address('n1'), ident=3, protocol='delay', length=1000) # Sim.scheduler.add(delay=0, event=p3, handler=n1.send_packet) # p4 = Packet(destination_address=n2.get_address('n1'), ident=4, protocol='delay', length=1000) # Sim.scheduler.add(delay=2, event=p4, handler=n1.send_packet) # run the simulation Sim.scheduler.run()
def main(): # parameters Sim.scheduler.reset() Sim.set_debug("Node") # setup network net = Network("test1network.txt") for hostname, node in sorted(net.nodes.iteritems()): node.add_protocol(protocol="dvrouting", handler=RoutingApp(node)) n5 = net.get_node("n5") n5.add_protocol(protocol="delay", handler=DelayHandler()) p = Packet(destination_address=n5.get_address("n4"), ident=1, protocol="delay", length=1000) n1 = net.get_node("n1") Sim.scheduler.add(delay=3.2, event=p, handler=n1.send_packet) # run the simulation Sim.scheduler.run()
def main(): d = DelayHandler() for i in range(1, 4): print("SIMULATION NO. " + str(i)) Sim.scheduler.reset() net = Network('./twonodes' + str(i) + '.txt') n1 = net.get_node('n1') n2 = net.get_node('n2') n1.add_forwarding_entry(address=n2.get_address('n1'), link=n1.links[0]) n2.add_forwarding_entry(address=n1.get_address('n2'), link=n2.links[0]) net.nodes['n2'].add_protocol(protocol="delay", handler=d) if (i == 3): for j in range(0, 4): packet = Packet(destination_address=n2.get_address('n1'), ident=j, protocol='delay', length=1000) if j == 3: delay = 2 else: delay = 0 Sim.scheduler.add(delay=delay, event=packet, handler=n1.send_packet) else: packet = Packet(destination_address=n2.get_address('n1'), ident=0, protocol='delay', length=1000) Sim.scheduler.add(delay=0, event=packet, handler=n1.send_packet) Sim.scheduler.run()