Re: [SNMP4J] - BER - OID resolution i.e : snmpCommunityName
Frank, I updated both SMI to 1.1 and SNMP4J to 2.2.3, removed the old JARS, clean and rebuild. When implementing the setOidFormat I see the new ENUM ObjectNameAndDecodedIndex4RoundTrip in the java doc but I am unable to implement. Eclipse does not see it. I looked at the examples, but I don't see how to start it out. This is the old way: smiManager.setOidFormat(SmiManager.OIDFormat.ObjectNameAndDecodedIndex); But I assume this is the new way: smiManager.setOidFormat(SmiManager.OIDFormat.ObjectNameAndDecodedIndex4RoundTrip); If this is the intention, then I will need to review my BuildPath or how I am adding the external jars. I reverted back to the old Versions 2.2.0 and 1.0.1 and is working again, without the new updates Thanks, Maurice -Original Message- From: Frank Fock [mailto:f...@agentpp.com] Sent: Monday, January 06, 2014 10:26 AM To: Garcia, Maurice; snmp4j@agentpp.org Subject: Re: [SNMP4J] - BER - OID resolution i.e : snmpCommunityName Hi Maurice, SNMP4J-SMI 1.1 is ready for download now - if you have not recognized it yet. The examples below are not valid any more, because I had to change the format a little bit. See the SmiManager JavaDoc for the details: http://www.snmp4j.org/smi/doc/com/snmp4j/smi/SmiManager.html Best regards, Frank Am 04.01.2014 02:56, schrieb Frank Fock: Maurice, You got it right. The decoded index format without quotes that is currently implemented is not suitable for round-trip coding/decoding. The new (additional) format uses double quotes for non-implied length sub-indexes with variable length, DISPLAY-HINT, or enum label encoding. It uses single quotes for implied length non-numeric sub-index values. Some examples from the unit tests I wrote to verify the new format: OID vacmAccessContextMatch = new OID(1.3.6.1.6.3.16.1.4.1.4.7.118.51.103.114.111.117.112.0.3.1); assertEquals(vacmAccessContextMatch.'v3group'.''.3.'noAuthNoPriv(1)' , vacmAccessContextMatch.toString()); assertEquals(vacmAccessContextMatch, new OID(vacmAccessContextMatch.'v3group'.''.3.'noAuthNoPriv(1)')); OID vacmViewTreeFamilyMask = new OID(1.3.6.1.6.3.16.1.5.2.1.3.20.117.110.114.101.115.116.114.105.99.11 6.101.100.82.101.97.100.86.105.101.119.3.1.3.6); assertEquals(vacmViewTreeFamilyMask.'unrestrictedReadView'.'dod', vacmViewTreeFamilyMask.toString()); OID vacmViewTreeFamilyMask2 = new OID(1.3.6.1.6.3.16.1.5.2.1.3.20.117.110.114.101.115.116.114.105.99.11 6.101.100.82.101.97.100.86.105.101.119.4.1.3.6.4976); assertEquals(vacmViewTreeFamilyMask.'unrestrictedReadView'.'dod.4976' , vacmViewTreeFamilyMask2.toString()); OID vacmViewTreeFamilyMask3 = new OID(1.3.6.1.6.3.16.1.5.2.1.3.20.117.110.114.101.115.116.114.105.99.11 6.101.100.82.101.97.100.86.105.101.119.4.9.3.6.4976); assertEquals(vacmViewTreeFamilyMask.'unrestrictedReadView'.'9.3.6.497 6', vacmViewTreeFamilyMask3.toString()); Best regards, Frank Am 03.01.2014 16:28, schrieb Garcia, Maurice: Frank, Sorry for all the questions L One more related to this email trail... I implemented the change you suggested and now the OID is resolved: Output - *vacmSecurityToGroupStatus.1.readwritesec* But when I reverse the process, it will not encode back to BER. OID 'vacmGroupName.1.readwritesec' cannot be parsed at org.snmp4j.smi.OID.parseDottedString(_OID.java:148_) at org.snmp4j.smi.OID.init(_OID.java:83_) at com.comcast.cpe.cfb.ber.BERService.setOIDEncoding(_BERService.java:15 2_) I am not sure if this is related to the bug you found that will be fixed in 1.0.2, but it appear to be the round-trip index conversion that you were talking about? Thanks, Maurice *From:*Frank Fock [mailto:f...@agentpp.com] *Sent:* Thursday, January 02, 2014 12:15 PM *To:* Garcia, Maurice; snmp4j@agentpp.org *Subject:* Re: [SNMP4J] - BER - OID resolution i.e : snmpCommunityName Hi Maurice, OK, I understand. To get the index decoded too, two steps are ncessary: 1. Set the OID format to: smiManager.setOidFormat(SmiManager.OIDFormat.ObjectNameAndDecodedInde x); 2. Call oOID.format(); While investigating this, I found two issues with SNMP4JSMI 1.0.1: 1. When activating the OID format OIDFormat.ObjectNameAndDecodedIndex object names of non-instance OIDs (i.e. objects in the MIB tree path like mib-2) will be decoded as numeric OIDs only. This bug will be fixed with version 1.0.2 coming very soon. 2. Currently OID.toString() will not return object names with decoded index, because such OIDs cannot be parsed and thus are not suitable for rountrip conversion. However, I think I have found a solution to be able to do round-trip index conversion and will implement it for version 1.0.2 too. Best regards, Frank Am 02.01.2014 04:40, schrieb Garcia, Maurice: Thanks for the quick reponse!! I am using the SNMP4J-SMI with the purchased license. I used both the OID.format() and OID.toString, but I am getting
Re: [SNMP4J] - BER - OID resolution i.e : snmpCommunityName
Hi Maurice, Sorry, it was some error in the packaging which removed the innerclass enums. I have fixed the packaging and you can download the new version now. If you have problems downloading it through the original link because some proxies are caching the old version then you may try this copy http://www.snmp4j.com/smi/snmp4j-smi-1.1a-dist.zip (Same file but with an a in the name). Best regards, Frank Am 14.01.2014 19:47, schrieb Garcia, Maurice: Frank, I updated both SMI to 1.1 and SNMP4J to 2.2.3, removed the old JARS, clean and rebuild. When implementing the setOidFormat I see the new ENUM ObjectNameAndDecodedIndex4RoundTrip in the java doc but I am unable to implement. Eclipse does not see it. I looked at the examples, but I don't see how to start it out. This is the old way: smiManager.setOidFormat(SmiManager.OIDFormat.ObjectNameAndDecodedIndex); But I assume this is the new way: smiManager.setOidFormat(SmiManager.OIDFormat.ObjectNameAndDecodedIndex4RoundTrip); If this is the intention, then I will need to review my BuildPath or how I am adding the external jars. I reverted back to the old Versions 2.2.0 and 1.0.1 and is working again, without the new updates Thanks, Maurice -Original Message- From: Frank Fock [mailto:f...@agentpp.com] Sent: Monday, January 06, 2014 10:26 AM To: Garcia, Maurice; snmp4j@agentpp.org Subject: Re: [SNMP4J] - BER - OID resolution i.e : snmpCommunityName Hi Maurice, SNMP4J-SMI 1.1 is ready for download now - if you have not recognized it yet. The examples below are not valid any more, because I had to change the format a little bit. See the SmiManager JavaDoc for the details: http://www.snmp4j.org/smi/doc/com/snmp4j/smi/SmiManager.html Best regards, Frank Am 04.01.2014 02:56, schrieb Frank Fock: Maurice, You got it right. The decoded index format without quotes that is currently implemented is not suitable for round-trip coding/decoding. The new (additional) format uses double quotes for non-implied length sub-indexes with variable length, DISPLAY-HINT, or enum label encoding. It uses single quotes for implied length non-numeric sub-index values. Some examples from the unit tests I wrote to verify the new format: OID vacmAccessContextMatch = new OID(1.3.6.1.6.3.16.1.4.1.4.7.118.51.103.114.111.117.112.0.3.1); assertEquals(vacmAccessContextMatch.'v3group'.''.3.'noAuthNoPriv(1)' , vacmAccessContextMatch.toString()); assertEquals(vacmAccessContextMatch, new OID(vacmAccessContextMatch.'v3group'.''.3.'noAuthNoPriv(1)')); OID vacmViewTreeFamilyMask = new OID(1.3.6.1.6.3.16.1.5.2.1.3.20.117.110.114.101.115.116.114.105.99.11 6.101.100.82.101.97.100.86.105.101.119.3.1.3.6); assertEquals(vacmViewTreeFamilyMask.'unrestrictedReadView'.'dod', vacmViewTreeFamilyMask.toString()); OID vacmViewTreeFamilyMask2 = new OID(1.3.6.1.6.3.16.1.5.2.1.3.20.117.110.114.101.115.116.114.105.99.11 6.101.100.82.101.97.100.86.105.101.119.4.1.3.6.4976); assertEquals(vacmViewTreeFamilyMask.'unrestrictedReadView'.'dod.4976' , vacmViewTreeFamilyMask2.toString()); OID vacmViewTreeFamilyMask3 = new OID(1.3.6.1.6.3.16.1.5.2.1.3.20.117.110.114.101.115.116.114.105.99.11 6.101.100.82.101.97.100.86.105.101.119.4.9.3.6.4976); assertEquals(vacmViewTreeFamilyMask.'unrestrictedReadView'.'9.3.6.497 6', vacmViewTreeFamilyMask3.toString()); Best regards, Frank Am 03.01.2014 16:28, schrieb Garcia, Maurice: Frank, Sorry for all the questions L One more related to this email trail... I implemented the change you suggested and now the OID is resolved: Output - *vacmSecurityToGroupStatus.1.readwritesec* But when I reverse the process, it will not encode back to BER. OID 'vacmGroupName.1.readwritesec' cannot be parsed at org.snmp4j.smi.OID.parseDottedString(_OID.java:148_) at org.snmp4j.smi.OID.init(_OID.java:83_) at com.comcast.cpe.cfb.ber.BERService.setOIDEncoding(_BERService.java:15 2_) I am not sure if this is related to the bug you found that will be fixed in 1.0.2, but it appear to be the round-trip index conversion that you were talking about? Thanks, Maurice *From:*Frank Fock [mailto:f...@agentpp.com] *Sent:* Thursday, January 02, 2014 12:15 PM *To:* Garcia, Maurice; snmp4j@agentpp.org *Subject:* Re: [SNMP4J] - BER - OID resolution i.e : snmpCommunityName Hi Maurice, OK, I understand. To get the index decoded too, two steps are ncessary: 1. Set the OID format to: smiManager.setOidFormat(SmiManager.OIDFormat.ObjectNameAndDecodedInde x); 2. Call oOID.format(); While investigating this, I found two issues with SNMP4JSMI 1.0.1: 1. When activating the OID format OIDFormat.ObjectNameAndDecodedIndex object names of non-instance OIDs (i.e. objects in the MIB tree path like mib-2) will be decoded as numeric OIDs only. This bug will be fixed with version 1.0.2 coming very soon. 2. Currently OID.toString() will not return object names with decoded index, because such OIDs cannot be parsed and thus are not suitable for rountrip