[SNMP4J] Basic Question about implementing SNMP Tables

Eugene R. Snider gene at cvtt.net
Mon Dec 17 15:57:07 CET 2007


Now in terms of SNMP4J I could implement the above table and create the 
two rows with two
> arbitrary OIDs 1 and 2 and the suggested OID tcpConnState.192.168.1.78.1156.192.168.4.144.80 would be invalid (and
> igore all the index columns totally). And that is what I do not understand. Why would they be called index columns
> if they are not used to identify the rows but instead a OID provided by the SNMP4J API?
>
> Do I have a basic misunderstanding of SNMP tables here (I admit that I am relatively new to SNMP)?
>   

I think I understand.  Welcome to wonderful world of SNMP, which is 
simpler than you are expecting. Your life will get much easier if you 
stop thinking about SNMP as a database and think about it as a 
repository of independent data items whose relations are managed 
externally to the device by a manager such as OpenView.

Its not an arbitrary OID provide BY snmp4j, its an OID you provide to 
snmp4j in the row creation call:

       someEntry.addRow(new SomeEntryRow(new OID("2"), v2));

If you had called addRow with an argument of new OID("192.168.1.78.1156.192.168.4.144.80") the the instance data for the other columns would be:

someEntry.someColumn.92.168.1.78.1156.192.168.4.144.80

The implementor is responsible for assigning instance OIDs when the row is created. There is no RFC requirement that SNMP rows be sequentially assigned or that all columns be populated, although enterprise and private may impose additional requirements when creating or destroying rows from the manager.

Gene




More information about the SNMP4J mailing list