def get_utilization_single_router_polling(single_router, community_name): router = single_router[0] n_gets = 0 in_utilization = 0 out_utilization = 0 print "Router: ", router.get_hostname() while n_gets < 2: ifs_list = router.get_interfaces() timeUp = get_timeUp_SNMP(router, community_name) timeUp_diff = router.get_timeUp_diff(int(timeUp)) for interface in ifs_list: ##For each interface in the router will be get the number of input and output byes if_id = int(interface.get_id()) if_name = interface.get_name() if_speed = int(interface.get_if_speed()) ifInBytes, ifOutBytes = get_in_out_bytes_SNMP(router.get_address(), if_id, community_name) delta_ifInBytes = int(ifInBytes) - interface.get_old_in_byte() delta_ifOutBytes = int(ifOutBytes) - interface.get_old_out_byte() debug = 0 if debug: print "Interface: ", interface.get_name() print "[NEW]", "IN_Bytes: ", ifInBytes, "OUT_Bytes: ", ifOutBytes, "Time_Up: ", timeUp print "[OlD]", "IN_Bytes: ", interface.get_old_in_byte(), "OUT_Bytes: ", interface.get_old_out_byte(), "Time_Up: ", router.get_old_timeUp() print "Delta values: ", delta_ifInBytes, delta_ifOutBytes, timeUp_diff interface.set_old_in_byte(ifInBytes) interface.set_old_out_byte(ifOutBytes) ##The utilization takes into account also the packets get from SNMP format(in_utilization, ".3f") format(out_utilization, ".3f") in_utilization = (float(delta_ifInBytes) * 8 * 100) / (if_speed * (timeUp_diff / 100)) out_utilization = (float(delta_ifOutBytes) * 8 * 100) / (if_speed * (timeUp_diff / 100)) interface.set_in_out_utilization(in_utilization, out_utilization) n_gets = n_gets + 1 print "#####", n_gets router.set_interfaces(ifs_list) return router
def get_utilization_polling(routers_list, how_much_often, community_name): n_rel=0; in_utilization=0 out_utilization=0 while True: n_rel=n_rel+1; time.sleep(how_much_often); for router in routers_list: ifs_list=router.get_interfaces(); print '\n###',n_rel, '(Router ',router.get_hostname(),')' timeUp=get_timeUp_SNMP(router, community_name) timeUp_diff=router.get_timeUp_diff(int(timeUp)) for interface in ifs_list: if_id=int(interface.get_id()) if_name=interface.get_name() if_speed=float(interface.get_if_speed()) ifInBytes, ifOutBytes = get_in_out_bytes_SNMP(router.get_address(), if_id, community_name) delta_ifInBytes=int(ifInBytes)- interface.get_old_in_byte() delta_ifOutBytes=int(ifOutBytes)-interface.get_old_out_byte() debug=0 if(debug): print 'Interface: ',interface.get_name() print '[NEW]','IN_Bytes: ', ifInBytes, 'OUT_Bytes: ',ifOutBytes, 'Time_Up: ', timeUp print '[OlD]','IN_Bytes: ', interface.get_old_in_byte(), 'OUT_Bytes: ',interface.get_old_out_byte(), 'Time_Up: ', router.get_old_timeUp() print 'Delta values: ', delta_ifInBytes, delta_ifOutBytes, timeUp_diff interface.set_old_in_byte(ifInBytes) interface.set_old_out_byte(ifOutBytes) ##The utilization takes into account also the packets get from SNMP if(n_rel>1): format(in_utilization,'.3f') format(out_utilization,'.3f') in_utilization=((delta_ifInBytes)*8*100)/(if_speed*(timeUp_diff/100)); out_utilization=((delta_ifOutBytes)*8*100)/(if_speed*(timeUp_diff/100)); ##Some times the shown utilization is bigger than one. This it could be due to buffer o burst packets incoming. In order to avoid this kind of situation, it will be one if it is greater than one. It is correct this line of thinking ? #if (in_utilization>100): in_utilization=100 #if (out_utilization>100): out_utilization=100 print '(#', n_rel, ')', ' The in utilization ', if_name,'interface (ID:', if_id,') is ', in_utilization, '% (if speed: ',if_speed,' )'; print '(#', n_rel, ')', ' The out utilization ', if_name,'interface (ID:', if_id,') is ', out_utilization, '% (if speed: ',if_speed,' )\n';
def get_utilization_polling(routers_list, how_much_often, community_name): n_rel = 0 in_utilization = 0 out_utilization = 0 while True: n_rel = n_rel + 1 time.sleep(how_much_often) for router in routers_list: ifs_list = router.get_interfaces() print "\n###", n_rel, "(Router ", router.get_hostname(), ")" timeUp = get_timeUp_SNMP(router, community_name) timeUp_diff = router.get_timeUp_diff(int(timeUp)) for interface in ifs_list: if_id = int(interface.get_id()) if_name = interface.get_name() if_speed = float(interface.get_if_speed()) ifInBytes, ifOutBytes = get_in_out_bytes_SNMP(router.get_address(), if_id, community_name) delta_ifInBytes = int(ifInBytes) - interface.get_old_in_byte() delta_ifOutBytes = int(ifOutBytes) - interface.get_old_out_byte() debug = 0 if debug: print "Interface: ", interface.get_name() print "[NEW]", "IN_Bytes: ", ifInBytes, "OUT_Bytes: ", ifOutBytes, "Time_Up: ", timeUp print "[OlD]", "IN_Bytes: ", interface.get_old_in_byte(), "OUT_Bytes: ", interface.get_old_out_byte(), "Time_Up: ", router.get_old_timeUp() print "Delta values: ", delta_ifInBytes, delta_ifOutBytes, timeUp_diff interface.set_old_in_byte(ifInBytes) interface.set_old_out_byte(ifOutBytes) ##The utilization takes into account also the packets get from SNMP if n_rel > 1: format(in_utilization, ".3f") format(out_utilization, ".3f") in_utilization = ((delta_ifInBytes) * 8 * 100) / (if_speed * (timeUp_diff / 100)) out_utilization = ((delta_ifOutBytes) * 8 * 100) / (if_speed * (timeUp_diff / 100)) ##Some times the shown utilization is bigger than one. This it could be due to buffer o burst packets incoming. In order to avoid this kind of situation, it will be one if it is greater than one. It is correct this line of thinking ? # if (in_utilization>100): in_utilization=100 # if (out_utilization>100): out_utilization=100 print "(#", n_rel, ")", " The in utilization ", if_name, "interface (ID:", if_id, ") is ", in_utilization, "% (if speed: ", if_speed, " )" print "(#", n_rel, ")", " The out utilization ", if_name, "interface (ID:", if_id, ") is ", out_utilization, "% (if speed: ", if_speed, " )\n"
def get_utilization_single_router_polling(single_router, community_name): """##Giving in input the router object and the community name, this funcion returns the utilization from a single router through SNMP polling""" router=single_router[0] n_gets=0 in_utilization=0 out_utilization=0 print 'Router: ',router.get_hostname() while(n_gets<2): ifs_list=router.get_interfaces() timeUp=get_timeUp_SNMP(router, community_name) timeUp_diff=router.get_timeUp_diff(int(timeUp)) for interface in ifs_list:##For each interface in the router will be get the number of input and output byes if_id=int(interface.get_id()) if_name=interface.get_name() if_speed=int(interface.get_if_speed()) ifInBytes, ifOutBytes = get_in_out_bytes_SNMP(router.get_address(), if_id, community_name) delta_ifInBytes=int(ifInBytes)- interface.get_old_in_byte() delta_ifOutBytes=int(ifOutBytes)-interface.get_old_out_byte() debug=0 if(debug): print 'Interface: ',interface.get_name() print '[NEW]','IN_Bytes: ', ifInBytes, 'OUT_Bytes: ',ifOutBytes, 'Time_Up: ', timeUp print '[OlD]','IN_Bytes: ', interface.get_old_in_byte(), 'OUT_Bytes: ',interface.get_old_out_byte(), 'Time_Up: ', router.get_old_timeUp() print 'Delta values: ', delta_ifInBytes, delta_ifOutBytes, timeUp_diff interface.set_old_in_byte(ifInBytes) interface.set_old_out_byte(ifOutBytes) ##The utilization takes into account also the packets get from SNMP format(in_utilization,'.3f') format(out_utilization,'.3f') in_utilization=(float(delta_ifInBytes)*8*100)/(if_speed*float(timeUp_diff)/100); out_utilization=(float(delta_ifOutBytes)*8*100)/(if_speed*float(timeUp_diff)/100); interface.set_in_out_utilization(in_utilization, out_utilization) n_gets=n_gets+1 print '#####',n_gets router.set_interfaces(ifs_list) return router