Beispiel #1
0
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)
Beispiel #4
0
		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)
Beispiel #5
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)
Beispiel #8
0
#!/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)
Beispiel #9
0
# 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)