def neighborAdress(neighborName): router_list = readrouters(sys.argv[1]) address = 0 for j in router_list: if neighborName == j: address = router_list[j].baseport return address
def change(test, end1, end2, newcost): routerInfo = readrouters.readrouters(test) end1info = (routerInfo[end1].host, routerInfo[end1].baseport) end2info = (routerInfo[end2].host, routerInfo[end2].baseport) msg1 = "L %s %d" % (end2, newcost) msg2 = "L %s %d" % (end1, newcost) s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.sendto(msg1.encode(), end1info) s.sendto(msg2.encode(), end2info)
def change(test, end1, end2, newcost): routerInfo = readrouters.readrouters(test) end1info = (routerInfo[end1].host, routerInfo[end1].baseport) end2info = (routerInfo[end2].host, routerInfo[end2].baseport) msg1 = 'L %s %d' % (end2, newcost) msg2 = 'L %s %d' % (end1, newcost) s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.sendto(msg1, end1info) s.sendto(msg2, end2info)
if neighbor in MasterDVTable[fd].DVTable : if MasterDVTable[fd].DVTable[neighbor] + MasterDVTable[fd].cost < min_distance: #distance to router(neighbor variable) + cost to our neigh min_distance = MasterDVTable[fd].DVTable[neighbor] + MasterDVTable[fd].cost nexthop = MasterDVTable[fd].name if min_distance < 99: return nexthop else: return None if __name__ == '__main__': print "Router %s initialization started...\n" % myName router_list = readrouters(testDir) #global info router_link_list = readlinks(testDir, myName)#info about my neighbors for name in router_list: print ("RouterName: %s, port# %d" % (name ,router_list[name].baseport)) print("") for name in router_link_list: print "Neighbor: %s, Link Cost: %d" % (name, router_link_list[name].cost) print("") print ('initialization...') # Create a TCP/IP socket server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #server.setblocking(0)
if __name__ == '__main__': if len(sys.argv) < 3: print 'Not enough arguments' close(0) elif len(sys.argv) == 4: P = sys.argv[1] testDir = sys.argv[2] myName = sys.argv[3] else: P = 0 testDir = sys.argv[1] myName = sys.argv[2] print 'Router initialization started...\n' router_list = readrouters(testDir) router_link_list = readlinks(testDir,myName) for i in router_list: print "RouterName: %s, port# %d" % (i,router_list[i].baseport) for j in router_link_list: neighbor = j print "Neighbor: %s, Link Cost: %d" % (j, router_link_list[j].remotelink) print 'Router init End...' print 'Creating Router Connection now' localhost = router_list[myName].host portNumber = router_list[myName].baseport my_address = (localhost, portNumber) rSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) rSock.bind(my_address)
we extract, testdir, routername NOTE: using readroutes, readlinks from skeleton ''' parser = cliparser(description='router') parser.add_argument('-p', action='store_true') parser.add_argument('testdir') parser.add_argument('routername') args = parser.parse_args() testdir = args.testdir poisoned = args.p routername = args.routername links = readlinks(testdir, routername) routerlist = readrouters(testdir) neighbor = [] for link,linkinfo in links.items(): neighbor.append([link,linkinfo.cost]) routerx = Router(routername, neighbor, poisoned) neighborset = [] broadcaster = setupserver(routerlist[routername].host,routerlist[routername].baseport) socketmap = [ routername ] for host,info in routerlist.items(): if host in links: neighborset.append(setupsock(routerlist[routername].host,routerlist[host].host,\
#!/usr/bin/python import readrouters import socket def printTables(routerInfo): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) for router in routerInfo.keys(): endinfo = (routerInfo[router].host, routerInfo[router].baseport) msg = 'P' s.sendto(msg.encode(), endinfo) def printTable(router, routerInfo): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) endinfo = (routerInfo[router].host, routerInfo[router].baseport) msg = 'P' s.sendto(msg.encode(), endinfo) if __name__=='__main__': import sys routerInfo = readrouters.readrouters(sys.argv[1]) if len(sys.argv) == 3: printTable(sys.argv[2], routerInfo) elif len(sys.argv) == 2: printTables(routerInfo)
#!/usr/bin/python import readrouters import socket def printTables(routerInfo): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) for router in routerInfo.keys(): endinfo = (routerInfo[router].host, routerInfo[router].baseport) msg = 'P' s.sendto(msg, endinfo) def printTable(router, routerInfo): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) endinfo = (routerInfo[router].host, routerInfo[router].baseport) msg = 'P' s.sendto(msg, endinfo) if __name__ == '__main__': import sys routerInfo = readrouters.readrouters(sys.argv[1]) if len(sys.argv) == 3: printTable(sys.argv[2], routerInfo) elif len(sys.argv) == 2: printTables(routerInfo)
# Filename: router.py import sys #, readrouters # How to use get sys arguments #for i in sys.argv: # print i # or use sys.argv[1],2,3,4 for arguments #from sys import argv #gets ARGV Variable from readrouters import readrouters, readlinks, RouterInfo, LinkInfo #We can now use these imported functions and class structures if __name__ == '__main__': print 'Router initialization started...\n' #Dictionary data struct is like hash table, d = {key1 : value1, key2 : value2 } router_list = readrouters(sys.argv[1]) router_link_list = readlinks(sys.argv[1],sys.argv[2]) for i in router_list: print "RouterName: %s, port# %d" % (i,router_list[i].baseport) server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server.setblocking(0) localhost = router_list[sys.argv[2]].host portNumber = router_list[sys.argv[2]].baseport server_address = (localhost, portNumber) server.bind(server_address) server.listen(5) inputs = [ server ] outputs = [ ] message_queues = {} for j in router_link_list: message_queues.put(j)