GENSNMPTREE(1) | MidnightBSD General Commands Manual | GENSNMPTREE(1) |
gensnmptree
—
generate C and header files from a MIB description
file
gensnmptree |
[-dEeFfhlt ] [-I
directory] [-i
infile] [-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 descriptions. 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
program writers.
If none of the options -e
,
-E
or -t
are 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 functions used in this table, the
table itself and definitions for all enums.
The following options are available:
-d
-E
-e
gensnmptree
expects MIB variable names (only the
last component) on its command line. It reads a MIB specification from
standard input and for each MIB variable name emits three C preprocessor
defines on its standard output:
const struct asn_oid
oid_sysDescr = OIDX_sysDescr;
-F
-f
-h
-I
directory-i
infile-l
-t
-p
prefixThe syntax of the MIB description file can formally be specified as follows:
file := top | top file top := tree | typedef | include tree := head elements ')' entry := head ':' index STRING elements ')' leaf := head type STRING ACCESS ')' column := head type ACCESS ')' type := BASETYPE | BASETYPE '|' subtype | enum | bits subtype := STRING enum := ENUM '(' value ')' bits := BITS '(' value ')' value := INT STRING | INT STRING value head := '(' INT STRING elements := EMPTY | elements element element := tree | leaf | column index := type | index type typedef := 'typedef' STRING type include := 'include' filespec filespec := '"' STRING '"' | '<' STRING '>'
BASETYPE specifies a SNMP data type and may be one of
ACCESS specifies the accessibility of the MIB variable (which operation can be performed) and is one of
INT is a decimal integer and STRING is any string starting with a letter or underscore and consisting of letters, digits, underscores and minuses, that is not one of the keywords.
The typedef directive associates a type with a single name.
The include directive is replaced by the contents of the named file.
The following MIB description describes the system group:
include "tc.def" typedef AdminStatus ENUM ( 1 up 2 down ) (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 ⟨harti@FreeBSD.org⟩
April 2, 2019 | midnightbsd-3.1 |