Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
GENSNMPTREE(1)          FreeBSD General Commands Manual         GENSNMPTREE(1)

     gensnmptree -- generate C and header files from a MIB description file

     gensnmptree [-helt] [-p prefix] [name ...]

     The gensnmptree utility is used to either generate C language tables and
     header files from a MIB description or to numeric OIDs from MIB descrip-
     tions.  The first form is used only for maintaining the bsnmpd(1) daemon
     or for module writers.  The second form may be used by SNMP client pro-
     gram writers.

     If the -e option is not used gensnmptree reads a MIB description from its
     standard input and creates two files: a C-file prefixtree.c containing a
     table used by bsnmpd(1) during PDU processing and a header file
     prefixtree.h containing appropriate declarations of the callback func-
     tions used in this table and the table itself.

     If the -e option is specified gensnmptree expects MIB variable names
     (only the last component) on its command line.  It reads a MIB specifica-
     tion from standard input and for each MIB variable name emits three C
     preprocessor defines on its standard output:

     OIDX_name    This define can be used to initialize a struct asn_oid in
                  the following way:

                        const struct asn_oid oid_sysDescr = OIDX_sysDescr;

     OIDLEN_name  is the length of the OID.

     OID_name     is the last component of the OID.

     The options are as follows:

     -h           Print a short help page.

     -e           Enter extract mode.

     -l           Generate local preprocessor includes.  This is used for
                  bootstrapping bsnmpd(1).

     -t           Instead of normal output print the resulting tree.

     -p prefix    Prefix the file names and the table name with prefix.

     The syntax of the MIB description file can formally be specified as fol-

           file := tree | tree file

           tree := head elements ')'

           entry := head ':' index STRING elements ')'

           leaf := head TYPE STRING ACCESS ')'

           column := head TYPE ACCESS ')'

           head := '(' INT STRING

           elements := EMPTY | elements element

           element := tree | leaf

           index := TYPE | index TYPE

     TYPE specifies a SNMP data type and may be one of
           +o   NULL
           +o   INTEGER
           +o   INTEGER32 (same as INTEGER)
           +o   UNSIGNED32 (same as GAUGE)
           +o   OCTETSTRING
           +o   IPADDRESS
           +o   OID
           +o   TIMETICKS
           +o   COUNTER
           +o   GAUGE
           +o   COUNTER64

     ACCESS specifies the accessibility of the MIB variable (which operation
     can be performed) and is one of
           +o   GET
           +o   SET

     INT is a decimal integer and STRING is any string starting with a letter
     or underscore and consisting of letters, digits and underscores, that is
     not one of the keywords.

     The following MIB description describes the system group:

           (1 internet
             (2 mgmt
               (1 mibII
                 (1 system
                   (1 sysDescr OCTETSTRING op_system_group GET)
                   (2 sysObjectId OID op_system_group GET)
                   (3 sysUpTime TIMETICKS op_system_group GET)
                   (4 sysContact OCTETSTRING op_system_group GET SET)
                   (5 sysName OCTETSTRING op_system_group GET SET)
                   (6 sysLocation OCTETSTRING op_system_group GET SET)
                   (7 sysServices INTEGER op_system_group GET)
                   (8 sysORLastChange TIMETICKS op_system_group GET)
                   (9 sysORTable
                     (1 sysOREntry : INTEGER op_or_table
                       (1 sysORIndex INTEGER)
                       (2 sysORID OID GET)
                       (3 sysORDescr OCTETSTRING GET)
                       (4 sysORUpTime TIMETICKS GET)


     Hartmut Brandt <>

FreeBSD 6.2                    February 27, 2006                   FreeBSD 6.2


Want to link to this manual page? Use this URL:

home | help