Enlinkd CDP code fails to parse hex-encoded IP address string
Description
Acceptance / Success Criteria
Lucidchart Diagrams
Activity

Antonio Russo September 4, 2015 at 4:04 PM
Merged into foundation....
Foundation is merged automatically in develop.....
MacBook-Pro-di-Antonio-Russo:opennms antonio$ git push
Counting objects: 12, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 300 bytes | 0 bytes/s, done.
Total 2 (delta 1), reused 0 (delta 0)
To git@github.com:OpenNMS/opennms.git
cfca615..282259d foundation -> foundation

Seth Leger September 4, 2015 at 12:49 PM
Here's some snmpwalk data from the reporter of the issue:
1.3.6.1.4.1.9.9.23.1.2.1.1.3.120.17 CISCO-CDP-MIB.cdpCacheAddressType.120.17 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.122.26 CISCO-CDP-MIB.cdpCacheAddressType.122.26 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.123.27 CISCO-CDP-MIB.cdpCacheAddressType.123.27 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.125.16 CISCO-CDP-MIB.cdpCacheAddressType.125.16 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.128.18 CISCO-CDP-MIB.cdpCacheAddressType.128.18 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.129.21 CISCO-CDP-MIB.cdpCacheAddressType.129.21 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.131.20 CISCO-CDP-MIB.cdpCacheAddressType.131.20 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.132.22 CISCO-CDP-MIB.cdpCacheAddressType.132.22 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.133.28 CISCO-CDP-MIB.cdpCacheAddressType.133.28 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.134.29 CISCO-CDP-MIB.cdpCacheAddressType.134.29 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.140.24 CISCO-CDP-MIB.cdpCacheAddressType.140.24 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.141.25 CISCO-CDP-MIB.cdpCacheAddressType.141.25 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.142.19 CISCO-CDP-MIB.cdpCacheAddressType.142.19 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.143.23 CISCO-CDP-MIB.cdpCacheAddressType.143.23 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.144.12 CISCO-CDP-MIB.cdpCacheAddressType.144.12 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.145.13 CISCO-CDP-MIB.cdpCacheAddressType.145.13 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.152.49 CISCO-CDP-MIB.cdpCacheAddressType.152.49 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.153.50 CISCO-CDP-MIB.cdpCacheAddressType.153.50 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.155.45 CISCO-CDP-MIB.cdpCacheAddressType.155.45 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.156.44 CISCO-CDP-MIB.cdpCacheAddressType.156.44 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.159.48 CISCO-CDP-MIB.cdpCacheAddressType.159.48 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.165.39 CISCO-CDP-MIB.cdpCacheAddressType.165.39 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.173.52 CISCO-CDP-MIB.cdpCacheAddressType.173.52 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.176.47 CISCO-CDP-MIB.cdpCacheAddressType.176.47 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.177.53 CISCO-CDP-MIB.cdpCacheAddressType.177.53 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.178.32 CISCO-CDP-MIB.cdpCacheAddressType.178.32 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.179.33 CISCO-CDP-MIB.cdpCacheAddressType.179.33 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.180.34 CISCO-CDP-MIB.cdpCacheAddressType.180.34 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.181.35 CISCO-CDP-MIB.cdpCacheAddressType.181.35 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.182.40 CISCO-CDP-MIB.cdpCacheAddressType.182.40 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.183.41 CISCO-CDP-MIB.cdpCacheAddressType.183.41 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.184.42 CISCO-CDP-MIB.cdpCacheAddressType.184.42 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.185.43 CISCO-CDP-MIB.cdpCacheAddressType.185.43 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.188.37 CISCO-CDP-MIB.cdpCacheAddressType.188.37 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.189.30 CISCO-CDP-MIB.cdpCacheAddressType.189.30 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.190.36 CISCO-CDP-MIB.cdpCacheAddressType.190.36 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.3.191.38 CISCO-CDP-MIB.cdpCacheAddressType.191.38 ENUM ip
1.3.6.1.4.1.9.9.23.1.2.1.1.4.120.17 CISCO-CDP-MIB.cdpCacheAddress.120.17 OCTET-STRING 7a:62:fc:01
1.3.6.1.4.1.9.9.23.1.2.1.1.4.122.26 CISCO-CDP-MIB.cdpCacheAddress.122.26 OCTET-STRING 7d:21:c9:f5
1.3.6.1.4.1.9.9.23.1.2.1.1.4.123.27 CISCO-CDP-MIB.cdpCacheAddress.123.27 OCTET-STRING 7d:21:c9:f5
1.3.6.1.4.1.9.9.23.1.2.1.1.4.125.16 CISCO-CDP-MIB.cdpCacheAddress.125.16 OCTET-STRING 7a:62:e4:96
1.3.6.1.4.1.9.9.23.1.2.1.1.4.128.18 CISCO-CDP-MIB.cdpCacheAddress.128.18 OCTET-STRING 7d:21:c9:f9
1.3.6.1.4.1.9.9.23.1.2.1.1.4.129.21 CISCO-CDP-MIB.cdpCacheAddress.129.21 OCTET-STRING 7d:21:c9:f9
1.3.6.1.4.1.9.9.23.1.2.1.1.4.131.20 CISCO-CDP-MIB.cdpCacheAddress.131.20 OCTET-STRING 7d:21:06:e2
1.3.6.1.4.1.9.9.23.1.2.1.1.4.132.22 CISCO-CDP-MIB.cdpCacheAddress.132.22 OCTET-STRING 7d:21:06:e6
1.3.6.1.4.1.9.9.23.1.2.1.1.4.133.28 CISCO-CDP-MIB.cdpCacheAddress.133.28 OCTET-STRING 7d:21:06:e2
1.3.6.1.4.1.9.9.23.1.2.1.1.4.134.29 CISCO-CDP-MIB.cdpCacheAddress.134.29 OCTET-STRING 7d:21:06:e6
1.3.6.1.4.1.9.9.23.1.2.1.1.4.140.24 CISCO-CDP-MIB.cdpCacheAddress.140.24 OCTET-STRING 7a:62:e4:21
1.3.6.1.4.1.9.9.23.1.2.1.1.4.141.25 CISCO-CDP-MIB.cdpCacheAddress.141.25 OCTET-STRING 7a:62:e4:29
1.3.6.1.4.1.9.9.23.1.2.1.1.4.142.19 CISCO-CDP-MIB.cdpCacheAddress.142.19 OCTET-STRING 35:da:3e:09
1.3.6.1.4.1.9.9.23.1.2.1.1.4.143.23 CISCO-CDP-MIB.cdpCacheAddress.143.23 OCTET-STRING 35:da:3e:01
1.3.6.1.4.1.9.9.23.1.2.1.1.4.144.12 CISCO-CDP-MIB.cdpCacheAddress.144.12 OCTET-STRING 7a:62:66:02
1.3.6.1.4.1.9.9.23.1.2.1.1.4.145.13 CISCO-CDP-MIB.cdpCacheAddress.145.13 OCTET-STRING 7a:62:66:06
1.3.6.1.4.1.9.9.23.1.2.1.1.4.152.49 CISCO-CDP-MIB.cdpCacheAddress.152.49 OCTET-STRING 7a:62:e4:59
1.3.6.1.4.1.9.9.23.1.2.1.1.4.153.50 CISCO-CDP-MIB.cdpCacheAddress.153.50 OCTET-STRING 7a:62:e4:61
1.3.6.1.4.1.9.9.23.1.2.1.1.4.155.45 CISCO-CDP-MIB.cdpCacheAddress.155.45 OCTET-STRING 7a:62:e4:46
1.3.6.1.4.1.9.9.23.1.2.1.1.4.156.44 CISCO-CDP-MIB.cdpCacheAddress.156.44 OCTET-STRING 7a:62:e4:52
1.3.6.1.4.1.9.9.23.1.2.1.1.4.159.48 CISCO-CDP-MIB.cdpCacheAddress.159.48 OCTET-STRING 35:ee:02:7a
1.3.6.1.4.1.9.9.23.1.2.1.1.4.165.39 CISCO-CDP-MIB.cdpCacheAddress.165.39 OCTET-STRING 7a:62:e4:da
1.3.6.1.4.1.9.9.23.1.2.1.1.4.173.52 CISCO-CDP-MIB.cdpCacheAddress.173.52 OCTET-STRING 7a:62:f8:25
1.3.6.1.4.1.9.9.23.1.2.1.1.4.176.47 CISCO-CDP-MIB.cdpCacheAddress.176.47 OCTET-STRING 7d:21:c9:41
1.3.6.1.4.1.9.9.23.1.2.1.1.4.177.53 CISCO-CDP-MIB.cdpCacheAddress.177.53 OCTET-STRING 7a:62:e4:ae
1.3.6.1.4.1.9.9.23.1.2.1.1.4.178.32 CISCO-CDP-MIB.cdpCacheAddress.178.32 OCTET-STRING 7a:62:e4:12
1.3.6.1.4.1.9.9.23.1.2.1.1.4.179.33 CISCO-CDP-MIB.cdpCacheAddress.179.33 OCTET-STRING 7a:62:e4:12
1.3.6.1.4.1.9.9.23.1.2.1.1.4.180.34 CISCO-CDP-MIB.cdpCacheAddress.180.34 OCTET-STRING 7a:62:e4:12
1.3.6.1.4.1.9.9.23.1.2.1.1.4.181.35 CISCO-CDP-MIB.cdpCacheAddress.181.35 OCTET-STRING 7a:62:e4:12
1.3.6.1.4.1.9.9.23.1.2.1.1.4.182.40 CISCO-CDP-MIB.cdpCacheAddress.182.40 OCTET-STRING 7a:62:e4:1a
1.3.6.1.4.1.9.9.23.1.2.1.1.4.183.41 CISCO-CDP-MIB.cdpCacheAddress.183.41 OCTET-STRING 7a:62:e4:1a
1.3.6.1.4.1.9.9.23.1.2.1.1.4.184.42 CISCO-CDP-MIB.cdpCacheAddress.184.42 OCTET-STRING 7a:62:e4:1a
1.3.6.1.4.1.9.9.23.1.2.1.1.4.185.43 CISCO-CDP-MIB.cdpCacheAddress.185.43 OCTET-STRING 7a:62:e4:1a
1.3.6.1.4.1.9.9.23.1.2.1.1.4.188.37 CISCO-CDP-MIB.cdpCacheAddress.188.37 OCTET-STRING 7a:62:e4:9e
1.3.6.1.4.1.9.9.23.1.2.1.1.4.189.30 CISCO-CDP-MIB.cdpCacheAddress.189.30 OCTET-STRING 7a:62:e4:9e
1.3.6.1.4.1.9.9.23.1.2.1.1.4.190.36 CISCO-CDP-MIB.cdpCacheAddress.190.36 OCTET-STRING 7a:62:e4:9e
1.3.6.1.4.1.9.9.23.1.2.1.1.4.191.38 CISCO-CDP-MIB.cdpCacheAddress.191.38 OCTET-STRING 7a:62:e4:9e

Antonio Russo September 4, 2015 at 4:47 AM
Seth I fixed in features/foundation-enlinkd could you ask Ben to put into bamboo?
When bamboo is green I'll merge in foundation

Antonio Russo September 4, 2015 at 4:46 AM
MacBook-Pro-di-Antonio-Russo:opennms-services antonio$ git push
Counting objects: 95, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (10/10), done.
Writing objects: 100% (12/12), 1.46 KiB | 0 bytes/s, done.
Total 12 (delta 6), reused 0 (delta 0)
To git@github.com:OpenNMS/opennms.git
ac989c8..46a3e44 features/foundation-enlinkd -> features/foundation-enlinkd
MacBook-Pro-di-Antonio-Russo:opennms-services antonio$ git log
commit 46a3e44a1cbcfbbc7a2afdfd34fba9ec6842aec7
Author: Antonio <rssntn67@yahoo.it>
Date: Fri Sep 4 10:44:09 2015 +0200
Fix https://opennms.atlassian.net/browse/NMS-7858#icft=NMS-7858: CDP code fails to parse hex-encoded IP address string
Created a new methid to check if the string is displayable
Using the native octet string to get inet address

Antonio Russo September 4, 2015 at 3:59 AM
This is a Cisco Catalist 6500...
Catalyst 6500 series switches require Cisco IOS Release 12.2(18)SXF4 or later releases.
Which IOS software they have?
I really need a walk of the cdpcache table from that device.
snmpwalk -c <community> -v2c -Oune <ip> .1.3.6.1.4.1.9.9.23
Details
Assignee
Antonio RussoAntonio RussoReporter
Seth LegerSeth LegerLabels
Components
Fix versions
Affects versions
Priority
Major
Details
Details
Assignee

Reporter

Labels
Components
Fix versions
Affects versions
Priority
PagerDuty
PagerDuty Incident
PagerDuty
PagerDuty Incident
PagerDuty

Here's a very strange stack trace from the CDP code:
2015-09-01 22:59:33,476 WARN [DefaultUDPTransportMapping_0.0.0.0/0] o.o.n.s.TableTracker: Failed to process response java.lang.NumberFormatException: For input string: "3135382e33352e3132302e313233" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[?:1.7.0_75] at java.lang.Long.parseLong(Long.java:444) ~[?:1.7.0_75] at org.opennms.core.utils.InetAddressUtils.getIpAddressByHexString(InetAddressUtils.java:522) ~[opennms-util-2015.1.0.jar:?] at org.opennms.netmgt.enlinkd.snmp.CdpCacheTableTracker$CdpCacheRow.getCdpCacheIpv4Address(CdpCacheTableTracker.java:166) ~[opennms-services-2015.1.0.jar:?] at org.opennms.netmgt.enlinkd.snmp.CdpCacheTableTracker$CdpCacheRow.getLink(CdpCacheTableTracker.java:209) ~[opennms-services-2015.1.0.jar:?] at org.opennms.netmgt.enlinkd.NodeDiscoveryCdp$1.processCdpCacheRow(NodeDiscoveryCdp.java:115) ~[opennms-services-2015.1.0.jar:?] at org.opennms.netmgt.enlinkd.snmp.CdpCacheTableTracker.rowCompleted(CdpCacheTableTracker.java:244) ~[opennms-services-2015.1.0.jar:?] at org.opennms.netmgt.snmp.SnmpTableResult.handleCompleteRows(SnmpTableResult.java:99) ~[org.opennms.core.snmp.api-2015.1.0.jar:?] at org.opennms.netmgt.snmp.SnmpTableResult.storeResult(SnmpTableResult.java:75) ~[org.opennms.core.snmp.api-2015.1.0.jar:?]
It looks like the value is a hex representation of the ASCII IP address string.