Esempio n. 1
0
def discoverSysTableData(client):
    snmpAgent = snmputils.SnmpAgent(None, client)
    queryBuilder = snmputils.SnmpQueryBuilder(BASE_SYSTABLE_OID)
    queryBuilder.addQueryElement(1, 'sysDescr')
    queryBuilder.addQueryElement(2, 'sysObjectID')
    queryBuilder.addQueryElement(4, 'sysContact')
    queryBuilder.addQueryElement(5, 'sysName')
    queryBuilder.addQueryElement(6, 'sysLocation')
    queryBuilder.addQueryElement(7, 'sysServices')
    
    sysTable = snmpAgent.getSnmpData(queryBuilder)
    
    for data in sysTable:
        classVendorOsAndModel = SnmpQueries.getClassVendorOsAndModelByOid(data.sysObjectID, data.sysDescr)
        setattr(data, 'sysClass', classVendorOsAndModel[0])
        setattr(data, 'sysVendor', classVendorOsAndModel[1])
        setattr(data, 'sysOs', classVendorOsAndModel[2])
        setattr(data, 'sysModel', classVendorOsAndModel[3])
        
        match = re.search("Nodename:\s*(\w+)", data.sysDescr)
        setattr(data, 'sysNodeName', None)
        if match:
            setattr(data, 'sysNodeName', match.group(1))
        
        if data.sysServices and (int(data.sysServices) & 2) > 0:
            setattr(data, 'isBridge', 1)
        else:
            setattr(data, 'isBridge', 0)
    if sysTable:
        return sysTable[0]
    else:
        raise ValueError, "Query for System Table returned empty result"
Esempio n. 2
0
def getILOsControllerBySNMP(client):
    snmpAgent = snmputils.SnmpAgent(None, client)

    queryBuilder = snmputils.SnmpQueryBuilder(ILO_CONTROLLER_OID)
    queryBuilder.addQueryElement(21, 'cpqSm2CntlrModel')

    return snmpAgent.getSnmpData(queryBuilder)
Esempio n. 3
0
def getDRACTable(client):
    logger.debug("Try to detect DRAC...")
    snmpAgent = snmputils.SnmpAgent(None, client)

    queryBuilder = snmputils.SnmpQueryBuilder(DRAC_CARD_OID)
    queryBuilder.addQueryElement(1, 'bmcChassisIndex')
    queryBuilder.addQueryElement(6, 'bmcDisplayName')
    queryBuilder.addQueryElement(7, 'bmcDescriptionName')

    return snmpAgent.getSnmpData(queryBuilder)
Esempio n. 4
0
def discoverIPv4NetToMediaTable(client):
    snmpAgent = snmputils.SnmpAgent(None, client)

    queryBuilder = snmputils.SnmpQueryBuilder(BASE_ARPTABLE_OID)
    queryBuilder.addQueryElement(2, 'ipNetToMediaPhysAddress','hexa')
    queryBuilder.addQueryElement(3, 'ipNetToMediaNetAddress')
    queryBuilder.addQueryElement(4, 'ipNetToMediaType')

    logger.debug('try to get ARP table for IPv4 by RFC 2465.')
    return snmpAgent.getSnmpData(queryBuilder)
Esempio n. 5
0
def discoverCiscoIPNetToMediaTable(client):
    snmpAgent = snmputils.SnmpAgent(None, client)

    queryBuilder = snmputils.SnmpQueryBuilder(CISCO_IP_NET_TO_PHYSICAL_TABLE_OID)
    queryBuilder.addQueryElement(2, 'cInetNetToMediaNetAddress')
    queryBuilder.addQueryElement(3, 'cInetNetToMediaPhysAddress')
    queryBuilder.addQueryElement(5, 'cInetNetToMediaType')
    queryBuilder.addQueryElement(6, 'cInetNetToMediaState')

    logger.debug('try to get Cisco ARP table by CISCO-IETF-IP-MIB.')
    return snmpAgent.getSnmpData(queryBuilder)
Esempio n. 6
0
def discoverRouteData(client):
    snmpAgent = snmputils.SnmpAgent(None, client)
    
    queryBuilder = snmputils.SnmpQueryBuilder(BASE_ROUTE_OID)
    queryBuilder.addQueryElement(7, 'ipRouteNextHop')
    queryBuilder.addQueryElement(8, 'ipRouteType')
    queryBuilder.addQueryElement(2, 'ipRouteIfIndex')
    queryBuilder.addQueryElement(1, 'ipRouteDest')    
    
    routeList = snmpAgent.getSnmpData(queryBuilder)
    return routeList
Esempio n. 7
0
def getDRACInterfaceTable(client):
    logger.debug("Try to detect DRAC Interface...")
    snmpAgent = snmputils.SnmpAgent(None, client)

    queryBuilder = snmputils.SnmpQueryBuilder(DRAC_INTERFACE_OID)
    queryBuilder.addQueryElement(1, 'bmcLANInterfaceChassisIndex')
    queryBuilder.addQueryElement(9, 'bmcLANInterfaceIPAddress')
    queryBuilder.addQueryElement(10, 'bmcLANInterfaceSubnetMaskAddress')
    queryBuilder.addQueryElement(11, 'bmcLANInterfaceDefaultGatewayAddress')
    queryBuilder.addQueryElement(12, 'bmcLANInterfaceMACAddress', 'hexa')

    return snmpAgent.getSnmpData(queryBuilder)
Esempio n. 8
0
 def getFilterInformation(self):
     result = []
     snmpAgent = snmputils.SnmpAgent(None, self._client)
     queryBuilder = snmputils.SnmpQueryBuilder('1.3.6.1.4.1.2636.3.5.1.1')
     queryBuilder.addQueryElement(1, 'Name')
     queryBuilder.addQueryElement(2, 'Counter')
     queryBuilder.addQueryElement(4, 'Type')
     try:
         result = snmpAgent.getSnmpData(queryBuilder)
     except:
         logger.warn('Failed getting Filter information')
     return result
Esempio n. 9
0
def discoverBridgeData(ipAddress, client):
    snmpAgent = snmputils.SnmpAgent(None, client, None)
    
    queryBuilder = snmputils.SnmpQueryBuilder(BASE_BRIDGE_OID)
    queryBuilder.addQueryElement(1, 'baseBridgeMacAddress', 'hexa')
    
    bridgeList = snmpAgent.getSnmpData(queryBuilder)
    
    for bridge in bridgeList:
        if str(bridge.baseBridgeMacAddress).startswith('000000000000'):
            bridge.baseBridgeMacAddress = ipAddress + ':' + bridge.baseBridgeMacAddress
    return bridgeList
Esempio n. 10
0
    def getNatedNetworks(self):
        result = []
        snmpAgent = snmputils.SnmpAgent(None, self._client)
        queryBuilder = snmputils.SnmpQueryBuilder('1.3.6.1.4.1.2636.3.38.1.1')
        queryBuilder.addQueryElement(1, 'Name')
        try:
            elems = snmpAgent.getSnmpData(queryBuilder)
            result = self.parseNatedNetworks(elems)
        except:
            logger.debugException('')
            logger.warn('Failed getting NAT information')

        return result
Esempio n. 11
0
def getILOsTableBySNMP(client):
    snmpAgent = snmputils.SnmpAgent(None, client)

    queryBuilder = snmputils.SnmpQueryBuilder(ILO_CARD_OID)
    queryBuilder.addQueryElement(2, 'cpqSm2NicModel')
    queryBuilder.addQueryElement(3, 'cpqSm2NicType')
    queryBuilder.addQueryElement(4, 'cpqSm2NicMacAddress', 'hexa')
    queryBuilder.addQueryElement(5, 'cpqSm2NicIpAddress')
    queryBuilder.addQueryElement(6, 'cpqSm2NicIpSubnetMask')
    queryBuilder.addQueryElement(9, 'cpqSm2NicSpeed')
    queryBuilder.addQueryElement(13, 'cpqSm2NicGatewayIpAddress')

    return snmpAgent.getSnmpData(queryBuilder)
Esempio n. 12
0
def isDhcpServer(client):
    snmpAgent = snmputils.SnmpAgent(None, client)
    queryBuilder = snmputils.SnmpQueryBuilder(BASE_DHCP_WIN_OID)
    queryBuilder.addQueryElement(1, 'parDhcpStartTime')
    isDhcpServer = 0

    logger.debug('try to query DHCP attribute.')
    response = snmpAgent.getSnmpData(queryBuilder)
    if (len(response) > 0):
        isDhcpServer = 1
        logger.debug('Find the parDhcpStartTime and mark it as DHCP Server.')

    return isDhcpServer
Esempio n. 13
0
    def getFirewallConfig(self):
        result = []
        snmpAgent = snmputils.SnmpAgent(None, self._client)
        queryBuilder = snmputils.SnmpQueryBuilder(
            '1.3.6.1.4.1.12356.101.5.1.2')
        queryBuilder.addQueryElement(1, 'Pol_Id')  #string
        queryBuilder.addQueryElement(4, 'Pkt_Count')  #int
        queryBuilder.addQueryElement(3, 'Byte_Count')  #int
        try:
            result = snmpAgent.getSnmpData(queryBuilder)
        except:
            logger.warn('Failed getting basic config')

        return result
Esempio n. 14
0
def discoverEntityDetails(client):
    snmpAgent = snmputils.SnmpAgent(None, client)
    queryBuilder = snmputils.SnmpQueryBuilder(BASE_ENTITY_PHYSICAL_OBJECTS_OID)
    queryBuilder.addQueryElement(2, 'description')
    queryBuilder.addQueryElement(3, 'type')
    queryBuilder.addQueryElement(4, 'containedIn')
    queryBuilder.addQueryElement(5, 'physClass')
    queryBuilder.addQueryElement(7, 'name')
    queryBuilder.addQueryElement(10, 'swRev')
    queryBuilder.addQueryElement(11, 'serialNumber')
    queryBuilder.addQueryElement(12, 'vendor')
    queryBuilder.addQueryElement(13, 'model')
    try:
        sysTable = snmpAgent.getSnmpData(queryBuilder)
    except:
        return [], ObjectStateHolderVector()
    
    aggregated_switches = []
    interfaces = []
    index_to_data_map = {}
    
    for data in sysTable:

        if data.type in phys_sw_oids and (data.physClass and int(data.physClass) == 3):
            aggregated_switches.append(data)
        if data.physClass and int(data.physClass) == 10:
            interfaces.append(data)
        index_to_data_map[data.meta_data] = data
    switches_oshs = []

    interfaceVector = ObjectStateHolderVector()
    if aggregated_switches and aggregated_switches[1:]:
        logger.debug('Detected Switch aggregation.')
        logger.debug('Found aggregated devices %s' % ([x.name for x in aggregated_switches[1:]]))
        
        lookup_sw = {}
        for data in aggregated_switches[1:]:
            sw_osh = buildAggrBackendSwitch(data)
            switches_oshs.append(sw_osh)
            lookup_sw[data.meta_data] = sw_osh
        
        for interface in interfaces:
            switch_id = findRelatedSwitch(interface, index_to_data_map, lookup_sw.keys())
            sw_osh = lookup_sw.get(switch_id)
            if sw_osh:
                interface_osh = buildSwInterface(interface, sw_osh)
                interfaceVector.add(interface_osh)
                
    return switches_oshs, interfaceVector
Esempio n. 15
0
def discoverNetscaler(Framework):
    """
    @type Framework: com.hp.ucmdb.discovery.probe.services.dynamic.core.DynamicServiceFrameworkImpl
    """
    client = None
    try:
        client = Framework.createClient()
        snmpAgent = snmputils.SnmpAgent(None, client)
        discoverer = NetScalerDiscover(snmpAgent)
        return discoverer.getTopology()
    except:
        logger.debugException('')
        logger.reportError('Failed to discover netscaler')
    finally:
        if client:
            client.close()
Esempio n. 16
0
    def getJSPolicy(self):
        result = []

        snmpAgent = snmputils.SnmpAgent(None, self._client)
        queryBuilder = snmputils.SnmpQueryBuilder(
            '1.3.6.1.4.1.2636.3.39.1.4.1.1.2.1')
        queryBuilder.addQueryElement(1, 'Zone_name')
        queryBuilder.addQueryElement(3, 'Policy_Name')
        queryBuilder.addQueryElement(5, 'Policy_action')
        queryBuilder.addQueryElement(7, 'Policy_state')
        try:
            result = snmpAgent.getSnmpData(queryBuilder)
        except:
            logger.warn('Failed getting JS Policy information')

        return result
Esempio n. 17
0
 def get_cdp_info(self):
     '''
     Selects data about CDP Layer 2 neighbors 
     @type param: -> [snmputils.ResultItem]
     '''
     snmp_agent = snmputils.SnmpAgent(None, self.client)
     query_builder = SnmpQueryBuilderWithRowIndex(self.CDP_CASH_TABLE_OID)
     query_builder.addQueryElement(3, 'cdpCacheAddressType')
     #integer: #1  network address #20 ip v6
     query_builder.addQueryElement(4, 'cdpCacheAddress', 'hexa')
     query_builder.addQueryElement(5, 'cdpCacheVersion')
     query_builder.addQueryElement(6, 'cdpCacheDeviceId', 'hexa')
     query_builder.addQueryElement(7, 'cdpCacheDevicePort')
     query_builder.addQueryElement(8, 'cdpCachePlatform')
     connections_list = snmp_agent.getSnmpData(query_builder)
     return connections_list
Esempio n. 18
0
 def getWebCacheConfig(self):
     result = []
     snmpAgent = snmputils.SnmpAgent(None, self._client)
     queryBuilder = snmputils.SnmpQueryBuilder(
         '1.3.6.1.4.1.12356.101.10.113.1')
     queryBuilder.addQueryElement(1, 'RAM_Limit')
     queryBuilder.addQueryElement(2, 'RAM_Usage')
     queryBuilder.addQueryElement(3, 'RAM_Hits')
     queryBuilder.addQueryElement(4, 'RAM_Misses')
     queryBuilder.addQueryElement(5, 'Requests')
     queryBuilder.addQueryElement(6, 'Bypass')
     try:
         result = snmpAgent.getSnmpData(queryBuilder)
     except:
         logger.warn('Failed getting Cache config')
     return result
Esempio n. 19
0
    def getVpnSslConfig(self):
        result = []
        snmpAgent = snmputils.SnmpAgent(None, self._client)
        queryBuilder = snmputils.SnmpQueryBuilder(
            '1.3.6.1.4.1.12356.101.12.2.4.1')
        queryBuilder.addQueryElement(1, 'Index')
        queryBuilder.addQueryElement(2, 'VDom')
        queryBuilder.addQueryElement(3, 'User')
        queryBuilder.addQueryElement(4, 'Src_IP')
        queryBuilder.addQueryElement(5, 'Tunel_IP')
        try:
            result = snmpAgent.getSnmpData(queryBuilder)
        except:
            logger.warn('Failed getting VPN SSL config')

        return result
Esempio n. 20
0
    def getNatInformation(self):
        '''jnxJsSrcNatTable: 1.3.6.1.4.1.2636.3.39.1.7.1.1.2'''
        result = []
        snmpAgent = snmputils.SnmpAgent(None, self._client)
        queryBuilder = snmputils.SnmpQueryBuilder(
            '1.3.6.1.4.1.2636.3.39.1.7.1.1.2.1')
        queryBuilder.addQueryElement(1, 'Name')
        queryBuilder.addQueryElement(2, 'Global_address')
        queryBuilder.addQueryElement(4, 'Number_of_used_ports')
        queryBuilder.addQueryElement(5, 'Number_of_sessions')
        queryBuilder.addQueryElement(6, 'Assoc_Interface')
        try:
            result = snmpAgent.getSnmpData(queryBuilder)
        except:
            logger.warn('Failed getting NAT information')

        return result
Esempio n. 21
0
    def getProxyConfig(self):
        result = []
        snmpAgent = snmputils.SnmpAgent(None, self._client)
        queryBuilder = snmputils.SnmpQueryBuilder(
            '1.3.6.1.4.1.12356.101.10.112.5.1')
        queryBuilder.addQueryElement(1, 'Blocked_DLP')
        queryBuilder.addQueryElement(2, 'Blocked_Conn_Type')
        queryBuilder.addQueryElement(3, 'Examined_URLs')
        queryBuilder.addQueryElement(4, 'Allowed_URLs')
        queryBuilder.addQueryElement(5, 'Blocked_URLs')
        queryBuilder.addQueryElement(6, 'Logged_URLs')
        queryBuilder.addQueryElement(7, 'Overriden_URLs')
        try:
            result = snmpAgent.getSnmpData(queryBuilder)
        except:
            logger.warn('Failed getting Proxy config')

        return result
Esempio n. 22
0
 def get_lldp_info(self):
     '''
     Selects data about LLDP Layer 2 neighbors 
     @type param: -> [Str]
     '''
     snmp_agent = snmputils.SnmpAgent(None, self.client)
     query_builder = SnmpQueryBuilderWithRowIndex(
         self.LLDP_REMOTE_SYSTEMS_DATA)
     query_builder.addQueryElement(4, 'lldpRemChassisIdSubtype')
     #integer:#1. chassiss component #2. interface alias  #3. port component
     #4. mac address #5. network address #6. interface name #7. local
     query_builder.addQueryElement(5, 'lldpRemChassisId', 'hexa')
     query_builder.addQueryElement(6, 'lldpRemPortIdSubtype')
     #integer:#1. interface alias #2. port component #3. mac address
     #4. network address #5. interface name #6. agentCircuitId #7. local
     query_builder.addQueryElement(7, 'lldpRemPortId', 'hexa')
     query_builder.addQueryElement(8, 'lldpRemPortDesc')
     query_builder.addQueryElement(9, 'lldpRemSysName')
     query_builder.addQueryElement(10, 'lldpRemSysDesc')
     connections_list = snmp_agent.getSnmpData(query_builder)
     return connections_list
Esempio n. 23
0
    def getAntivirusConfig(self):
        result = []
        snmpAgent = snmputils.SnmpAgent(None, self._client)
        queryBuilder = snmputils.SnmpQueryBuilder(
            '1.3.6.1.4.1.12356.101.8.2.1.1')
        queryBuilder.addQueryElement(1, 'AV_Detected')
        queryBuilder.addQueryElement(2, 'AV_Blocked')
        queryBuilder.addQueryElement(3, 'HTTP_AV_Detected')
        queryBuilder.addQueryElement(4, 'HTTP_AV_Blocked')
        queryBuilder.addQueryElement(5, 'SMTP_AV_Detected')
        queryBuilder.addQueryElement(6, 'SMTP_AV_Blocked')
        queryBuilder.addQueryElement(7, 'POP3_AV_Detected')
        queryBuilder.addQueryElement(8, 'POP3_AV_Blocked')
        queryBuilder.addQueryElement(9, 'IMAP_AV_Detected')
        queryBuilder.addQueryElement(10, 'IMAP_AV_Blocked')
        try:
            result = snmpAgent.getSnmpData(queryBuilder)
        except:
            logger.warn('Failed getting Antivirus config')

        return result
Esempio n. 24
0
def getEntPhysicalTable(client):
    logger.debug("Try to detect entPhysicalTable ...")
    snmpAgent = snmputils.SnmpAgent(None, client)

    queryBuilder = snmputils.SnmpQueryBuilder(ENT_PHYSICAL_TABLE_OID)
    queryBuilder.addQueryElement(1, 'entPhysicalIndex')
    queryBuilder.addQueryElement(2, 'entPhysicalDescr')
    queryBuilder.addQueryElement(3, 'entPhysicalVendorType')
    queryBuilder.addQueryElement(4, 'entPhysicalContainedIn')
    queryBuilder.addQueryElement(5, 'entPhysicalClassess')
    queryBuilder.addQueryElement(6, 'entPhysicalParentRelPos')
    queryBuilder.addQueryElement(7, 'entPhysicalName')
    queryBuilder.addQueryElement(8, 'entPhysicalHardwareRev')
    queryBuilder.addQueryElement(9, 'entPhysicalFirmwareRev')
    queryBuilder.addQueryElement(10, 'entPhysicalSoftwareRev')
    queryBuilder.addQueryElement(11, 'entPhysicalSerialNum')
    queryBuilder.addQueryElement(12, 'entPhysicalMfgName')
    queryBuilder.addQueryElement(13, 'entPhysicalModelName')
    queryBuilder.addQueryElement(14, 'entPhysicalAlias')
    queryBuilder.addQueryElement(15, 'entPhysicalAssetID')
    queryBuilder.addQueryElement(16, 'entPhysicalIsFRU')
    return snmpAgent.getSnmpData(queryBuilder)
Esempio n. 25
0
    if (len(response) > 0):
        isDhcpServer = 1
        logger.debug('Find the parDhcpStartTime and mark it as DHCP Server.')

    return isDhcpServer

def discoverIPData(client, ip_address):
    ipList = []
    try:
        discoveredIpDomain = DomainScopeManager.getDomainByIp(ip_address)
    except Exception, ex:
        strException  = str(ex.getMessage())
        logger.debugException('problem with domain search, Wrong ip definition' + strException)
        return ipList
    
    snmpAgent = snmputils.SnmpAgent(None, client)
    
    queryBuilder = snmputils.SnmpQueryBuilder(BASE_IP_OID)
    queryBuilder.addQueryElement(1, 'ipAddr')
    queryBuilder.addQueryElement(2, 'ipIfIndex')
    queryBuilder.addQueryElement(3, 'ipNetMask')
    
    ipListResult = snmpAgent.getSnmpData(queryBuilder)
    if (ipListResult == None) or (len(ipListResult) == 0):
        logger.warn('no data returned on query ', str(BASE_IP_OID))
    else: 
        for ip in ipListResult:
            if not isValidNetMask(str(ip.ipNetMask)):
                logger.warn('Received invalid netmask [', str(ip.ipNetMask),'] for ip ['+ ip.ipAddr +'], skipping')
            elif ip.ipAddr == None or len(ip.ipAddr) == 0:
                logger.warn('Received invalid ip: ' + ip.ipAddr + ', skipping')
Esempio n. 26
0
 def _createAgent(self):
     return snmputils.SnmpAgent(None, self._getClient())
Esempio n. 27
0
def discoverInterfaceData(client, sysTable):
    snmpAgent = snmputils.SnmpAgent(None, client)    
    queryBuilder = snmputils.SnmpQueryBuilder(BASE_INTERFACE_OID)
    queryBuilder.addQueryElement(1, 'ifIndex')
    queryBuilder.addQueryElement(2, 'ifDescr')
    queryBuilder.addQueryElement(3, 'ifType')
    queryBuilder.addQueryElement(5, 'ifSpeed')
    queryBuilder.addQueryElement(6, 'ifMac', 'hexa')
    queryBuilder.addQueryElement(7, 'ifAdminStatus')
    queryBuilder.addQueryElement(8, 'ifOperStatus')
    
    ifList = snmpAgent.getSnmpData(queryBuilder)
    
    queryBuilderHigh = snmputils.SnmpQueryBuilder(BASE_HIGH_INTERFACE_OID)
    queryBuilderHigh.addQueryElement(1, 'ifName')
    queryBuilderHigh.addQueryElement(15, 'ifHighSpeed')
    ifHighList = snmpAgent.getSnmpData(queryBuilderHigh)
    
    refifHigh = {}
    for iface in ifHighList:
        if iface.ifName:
            refifHigh[iface.ifName] = iface
            
    indx2if = {}
    refIfList = []
    for interface in ifList:
        if interface.ifType == '':
            interface.ifType = -1
        if interface.ifMac == None:
            interface.ifMac = ''
        if interface.ifMac and len(interface.ifMac) >= 34:
            #most likely we're dealing with the string to hex encoded value
            #try to decode it
            try:
                mac = interface.ifMac.decode('hex')
                #the fetched MAC might have missing 0 character at the end
                if mac:
                    if len(mac) in [16, 11]:
                        mac = mac + '0'
                    interface.ifMac = mac
                
            except:
                logger.debugException('')
        ifValid = SnmpQueries.checkValidMacByInterfaceTypeAndDescription(int(interface.ifType), interface.ifMac, interface.ifDescr and interface.ifDescr.lower())
        if (ifValid == 1)  and (not netutils.isValidMac(interface.ifMac)):
            logger.debug('Mac is invalid:' + interface.ifMac+', using mac index instead - '+interface.ifIndex)
            interface.ifMac = interface.ifIndex
        setattr(interface, 'ifName', None)
        setattr(interface, 'ifAlias', None)
        indx2if[interface.ifIndex] = interface
        refIfList.append(interface)
    try:
        getInterfaceNameAndAlias(client, indx2if)
    except:
        logger.debugException('Failed to get Name and Alias')

    #removing interfaces with invalid mac address and no name or description
    for refIf in refIfList:
        if not modeling.isValidInterface(refIf.ifMac, refIf.ifDescr, refIf.ifName):
            logger.warn('Skipped invalid interface [', str(refIf.ifMac), '], name[', str(refIf.ifName), '], description[', str(refIf.ifDescr), ']')
            ifList.remove(refIf)
            
    for iface in ifList:
        if iface.ifSpeed and long(iface.ifSpeed) == 4294967295L:#magic number in case speed is higher than 10Gb
            hiIface = refifHigh.get(iface.ifName)
            if hiIface and hiIface.ifHighSpeed:
                iface.ifSpeed = long(hiIface.ifHighSpeed) * 1000000
                
    return ifList