Various linkd issues
Description
Environment
Acceptance / Success Criteria
Lucidchart Diagrams
Activity

Jason Lixfeld May 15, 2011 at 1:04 PM
To point 2: It would be good to add some logic for deleting a link after it's been down for a given amount of time. I think there should also be something like a flag somewhere to be able to delete the link manually if it is desirable for the operator to have the link removed before the delete downed link counter elapses.

Jason Lixfeld May 15, 2011 at 1:00 PM
To point 1: Regarding my topology for the interfaces that appear to be connected to themselves, I'm not sure what to tell you. The Node > Links screen for a node shows very different information than what the the Maps adapter shows. The maps adapter is more accurate than Node > Links screen, but not as accurate as it should be (due to CDP issues mentioned previously).
As far as how to show you what linkd put into the database, I don't know what tables linkd puts the info into.

Jason Lixfeld May 15, 2011 at 12:47 PM
It seems as though the CISCO-CDP-MIB::cdpCacheAddressType.13.2 = INTEGER: unknown(65535) issue may be an IOS-XR specific issue. It works fine between IOS devices that are not connected at Layer 2. I will take this portion of the item up with Cisco.

Antonio Russo May 15, 2011 at 4:18 AM
Jason,
I see some troubles in walks...linkd is able to find link using the cdpcacheAddress, I found that in some case this is not an Ip address! This prevents linkd to find the corresponding link.
More you should also provide your linkd-configuration.xml or say if you have the default configuration.
For that regard point 1 and 2.
1 is really interesting I need more data, you should post at least your topology and show what linkd puts into the database
2 is usual because links not re found are put to N. Usually the "Active" link are put to A. The trouble is related to the fact that links are almost stable object in network and if a link is "down" this does not mean that the link is "detached".
I know this is a limitation, but think...if a link is only down...you delete it and you have no way of know that it is down.
After some time a link is down linkd set the link to D "deleted". There should be an automation in vacuumd that delete delteted links.

Jason Lixfeld May 14, 2011 at 9:53 PM
A couple of other issues that seem to fit under this:
1. Node Link Details thinks nodes are connected to themselves
2. Node Link Details not deleting old links
If this isn't linkd, let me know and I'll create issues for these items too.
I can't seem to get linkd to reliably discover links between nodes. The nodes are all Cisco nodes running IOS, IOS-XR and IOX-XE versions and they all have CDP enabled.
snmp can poll each node properly.
I can walk the CISCO-CDP-MIB of two nodes that have links between them.
The CDP info from the OIDs displays correctly.
Example of connected nodes that do not discover one another properly, even though they see each other via CDP:
root@monitor:/var/log/opennms# snmpwalk -v2c -c public -m +ENTITY-MIB:CISCO-CDP-MIB 10.219.49.11 cdpCacheTable | egrep "13.2|14.2"
Did not find 'zeroDotZero' in module SNMPv2-SMI (/usr/share/snmp/mibs/auto/mibs/v2/IP-MIB.my)
Did not find 'zeroDotZero' in module SNMPv2-SMI (/usr/share/snmp/mibs/auto/mibs/v2/EVENT-MIB.my)
Did not find 'zeroDotZero' in module SNMPv2-SMI (/usr/share/snmp/mibs/DISMAN-SCHEDULE-MIB.txt)
CISCO-CDP-MIB::cdpCacheAddressType.13.2 = INTEGER: unknown(65535)
CISCO-CDP-MIB::cdpCacheAddressType.14.2 = INTEGER: unknown(65535)
CISCO-CDP-MIB::cdpCacheVersion.13.2 = STRING: Cisco IOS XR Software, Version 4.0.1[Default]
CISCO-CDP-MIB::cdpCacheVersion.14.2 = STRING: Cisco IOS XR Software, Version 4.0.1[Default]
CISCO-CDP-MIB::cdpCacheDeviceId.13.2 = STRING: bfr01.151front711
CISCO-CDP-MIB::cdpCacheDeviceId.14.2 = STRING: bfr01.151front711
CISCO-CDP-MIB::cdpCacheDevicePort.13.2 = STRING: GigabitEthernet0/1/0/4
CISCO-CDP-MIB::cdpCacheDevicePort.14.2 = STRING: GigabitEthernet0/1/0/5
CISCO-CDP-MIB::cdpCachePlatform.13.2 = STRING: cisco ASR9K Series
CISCO-CDP-MIB::cdpCachePlatform.14.2 = STRING: cisco ASR9K Series
CISCO-CDP-MIB::cdpCacheCapabilities.13.2 = Hex-STRING: 50 41 DC A8
CISCO-CDP-MIB::cdpCacheCapabilities.14.2 = Hex-STRING: 50 41 DC A8
CISCO-CDP-MIB::cdpCacheVTPMgmtDomain.13.2 = STRING:
CISCO-CDP-MIB::cdpCacheVTPMgmtDomain.14.2 = STRING:
CISCO-CDP-MIB::cdpCacheNativeVLAN.13.2 = INTEGER: 0
CISCO-CDP-MIB::cdpCacheNativeVLAN.14.2 = INTEGER: 0
CISCO-CDP-MIB::cdpCacheDuplex.13.2 = INTEGER: fullduplex(3)
CISCO-CDP-MIB::cdpCacheDuplex.14.2 = INTEGER: fullduplex(3)
root@monitor:/var/log/opennms# snmpwalk -v2c -c public -m +ENTITY-MIB:CISCO-CDP-MIB 10.219.49.2 cdpCacheTable | egrep "20.1|21.1"
Did not find 'zeroDotZero' in module SNMPv2-SMI (/usr/share/snmp/mibs/auto/mibs/v2/IP-MIB.my)
Did not find 'zeroDotZero' in module SNMPv2-SMI (/usr/share/snmp/mibs/auto/mibs/v2/EVENT-MIB.my)
Did not find 'zeroDotZero' in module SNMPv2-SMI (/usr/share/snmp/mibs/DISMAN-SCHEDULE-MIB.txt)
CISCO-CDP-MIB::cdpCacheAddressType.20.1 = INTEGER: unknown(65535)
CISCO-CDP-MIB::cdpCacheAddressType.21.1 = INTEGER: unknown(65535)
CISCO-CDP-MIB::cdpCacheVersion.20.1 = STRING: Cisco IOS XR Software, Version 4.0.1[Default]
CISCO-CDP-MIB::cdpCacheVersion.21.1 = STRING: Cisco IOS XR Software, Version 4.0.1[Default]
Copyright (c) 1986-2011 by Cisco Systems, Inc.
CISCO-CDP-MIB::cdpCacheDeviceId.20.1 = STRING: bfr01.60hudson01
CISCO-CDP-MIB::cdpCacheDeviceId.21.1 = STRING: bfr01.60hudson01
CISCO-CDP-MIB::cdpCacheDevicePort.20.1 = STRING: GigabitEthernet0/0/0/0
CISCO-CDP-MIB::cdpCacheDevicePort.21.1 = STRING: GigabitEthernet0/0/0/1
CISCO-CDP-MIB::cdpCachePlatform.20.1 = STRING: cisco ASR9K Series
CISCO-CDP-MIB::cdpCachePlatform.21.1 = STRING: cisco ASR9K Series
CISCO-CDP-MIB::cdpCacheCapabilities.20.1 = Hex-STRING: 50 34 A8 E4
CISCO-CDP-MIB::cdpCacheCapabilities.21.1 = Hex-STRING: 50 34 A8 F8
CISCO-CDP-MIB::cdpCacheVTPMgmtDomain.20.1 = STRING:
CISCO-CDP-MIB::cdpCacheVTPMgmtDomain.21.1 = STRING:
CISCO-CDP-MIB::cdpCacheNativeVLAN.20.1 = INTEGER: 0
CISCO-CDP-MIB::cdpCacheNativeVLAN.21.1 = INTEGER: 0
CISCO-CDP-MIB::cdpCacheDuplex.20.1 = INTEGER: fullduplex(3)
CISCO-CDP-MIB::cdpCacheDuplex.21.1 = INTEGER: fullduplex(3)
root@monitor:/var/log/opennms#
Another example:
root@monitor:/var/log/opennms# snmpwalk -v2c -c public -m +ENTITY-MIB:CISCO-CDP-MIB 10.219.49.4 cdpCacheTable | egrep "10202.11"
Did not find 'zeroDotZero' in module SNMPv2-SMI (/usr/share/snmp/mibs/auto/mibs/v2/IP-MIB.my)
Did not find 'zeroDotZero' in module SNMPv2-SMI (/usr/share/snmp/mibs/auto/mibs/v2/EVENT-MIB.my)
Did not find 'zeroDotZero' in module SNMPv2-SMI (/usr/share/snmp/mibs/DISMAN-SCHEDULE-MIB.txt)
CISCO-CDP-MIB::cdpCacheAddressType.10202.11 = INTEGER: ip(1)
CISCO-CDP-MIB::cdpCacheAddress.10202.11 = Hex-STRING: 48 0F 33 04
CISCO-CDP-MIB::cdpCacheVersion.10202.11 = STRING: Cisco IOS XR Software, Version 4.0.1[Default]
CISCO-CDP-MIB::cdpCacheDeviceId.10202.11 = STRING: bfr01.151front711
CISCO-CDP-MIB::cdpCacheDevicePort.10202.11 = STRING: TenGigE0/0/0/2
CISCO-CDP-MIB::cdpCachePlatform.10202.11 = STRING: cisco ASR9K Series
CISCO-CDP-MIB::cdpCacheCapabilities.10202.11 = Hex-STRING: 00 00 00 01
CISCO-CDP-MIB::cdpCacheNativeVLAN.10202.11 = INTEGER: 0
CISCO-CDP-MIB::cdpCacheDuplex.10202.11 = INTEGER: fullduplex(3)
CISCO-CDP-MIB::cdpCacheLastChange.10202.11 = Timeticks: (1699413204) 196 days, 16:35:32.04
root@monitor:/var/log/opennms# snmpwalk -v2c -c public -m +ENTITY-MIB:CISCO-CDP-MIB 10.219.49.2 cdpCacheTable | egrep "54.14"
Did not find 'zeroDotZero' in module SNMPv2-SMI (/usr/share/snmp/mibs/auto/mibs/v2/IP-MIB.my)
Did not find 'zeroDotZero' in module SNMPv2-SMI (/usr/share/snmp/mibs/auto/mibs/v2/EVENT-MIB.my)
Did not find 'zeroDotZero' in module SNMPv2-SMI (/usr/share/snmp/mibs/DISMAN-SCHEDULE-MIB.txt)
CISCO-CDP-MIB::cdpCacheAddressType.54.14 = INTEGER: ip(1)
CISCO-CDP-MIB::cdpCacheAddress.54.14 = Hex-STRING: 48 0F 33 05
CISCO-CDP-MIB::cdpCacheVersion.54.14 = STRING: Cisco IOS Software, ME360x Software (ME360x-UNIVERSALK9-M), Version 12.2(52)EY1, RELEASE SOFTWARE (fc1)
CISCO-CDP-MIB::cdpCacheDeviceId.54.14 = STRING: systems02.151front711
CISCO-CDP-MIB::cdpCacheDevicePort.54.14 = STRING: TenGigabitEthernet0/2
CISCO-CDP-MIB::cdpCachePlatform.54.14 = STRING: cisco ME-3600X-24TS-M
CISCO-CDP-MIB::cdpCacheCapabilities.54.14 = Hex-STRING: 50 34 A9 70
CISCO-CDP-MIB::cdpCacheVTPMgmtDomain.54.14 = STRING:
CISCO-CDP-MIB::cdpCacheNativeVLAN.54.14 = INTEGER: 0
CISCO-CDP-MIB::cdpCacheDuplex.54.14 = INTEGER: fullduplex(3)
root@monitor:/var/log/opennms#