SNMP Request Overview

 

InSight uses an SNMP MIB (Management Information Base) definition to describe all data that is accessible.  A MIB is structured like a tree with branches and leafs.  Another name for a leaf is a MIB variable.  MIB variables are identified using an OID (Object Identifier).  

Actual MIB variable instances require an instance identifier to be accessed.  An instance identifier is essentially an array index.  In SNMP, all variables are looked at as an array.  Some variables are arrays with only 1 element (1 instance) and are called scalar variables and always have an instance ID of 0.  Variables that have more than one element are always part of a MIB table.  A table variable can have multiple instances.  Since the instance identifier can consist of multiple components, it is possible to virtually have multiply-dimensioned tables.

SNMP supports the following request types: SET, GET, GET_NEXT, and GET_BULK.  For GET and SET access a particular instance of a specific variable.  For GET_NEXT, variable OID and instance information is specified and the agent returns the ‘next’ valid variable/instance that lexicographically follows the specified one in the current MIB tree.  GET_NEXT is powerful for iterating through the whole MIB (walking the MIB) and for retrieving multiple elements of table variables.  All request types support requests for multiple variables in a single request.  A structure called a ‘variable binding’ is added to the request for each variable.

GET_BULK is a more powerful version of GET_NEXT.  This is mainly due to GET_BULK’s ability to retrieve multiple instances of a variable from a single request.  The variable bindings in a GET_BULK are divided into 2 sections: non-repeat variables and repeat variables.  Non-repeaters are variables for which only one instance is returned.  Repeaters are variables that will return potentially multiple instances up to a maximum number as specified in a special GET_BULK parameter specifying ‘max-repetitions.’  It is important to remember that GET_BULK does its processing like GET_NEXT meaning that it starts with the ‘next’ variable/instance after the specified one.  If no instance is specified for a variable, the first instance of that variable (assuming is a valid variable) is ‘next.’

 

 

Converted from CHM to HTML with chm2web Pro 2.85 (unicode)