/contrib/bsnmp/gensnmptree/gensnmptree.1
https://bitbucket.org/freebsd/freebsd-head/ · Unknown · 246 lines · 227 code · 19 blank · 0 comment · 0 complexity · e99f3a6ff2a772e3cf8787b422232f51 MD5 · raw file
- .\"
- .\" Copyright (c) 2001-2005
- .\" Fraunhofer Institute for Open Communication Systems (FhG Fokus).
- .\" All rights reserved.
- .\" Copyright (c) 2006
- .\" Hartmut Brandt
- .\" All rights reserved.
- .\"
- .\" Author: Harti Brandt <harti@FreeBSD.org>
- .\"
- .\" Redistribution and use in source and binary forms, with or without
- .\" modification, are permitted provided that the following conditions
- .\" are met:
- .\" 1. Redistributions of source code must retain the above copyright
- .\" notice, this list of conditions and the following disclaimer.
- .\" 2. Redistributions in binary form must reproduce the above copyright
- .\" notice, this list of conditions and the following disclaimer in the
- .\" documentation and/or other materials provided with the distribution.
- .\"
- .\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- .\" ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
- .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- .\" SUCH DAMAGE.
- .\"
- .\" $Begemot: gensnmptree.1 383 2006-05-30 07:40:49Z brandt_h $
- .\"
- .Dd May 26, 2006
- .Dt GENSNMPTREE 1
- .Os
- .Sh NAME
- .Nm gensnmptree
- .Nd "generate C and header files from a MIB description file"
- .Sh SYNOPSIS
- .Nm
- .Op Fl dEehlt
- .Op Fl I Ar directory
- .Op Fl i Ar infile
- .Op Fl p Ar prefix
- .Op Ar name Ar ...
- .Sh DESCRIPTION
- The
- .Nm
- 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
- .Xr bsnmpd 1
- daemon or for module writers.
- The second form may be used by SNMP client program writers.
- .Pp
- If none of the options
- .Fl e ,
- .Fl E
- or
- .Fl t
- are used
- .Nm
- reads a MIB description from its standard input and creates two files: a
- C-file
- .Ar prefix Ns tree.c
- containing a table used by
- .Xr bsnmpd 1
- during PDU processing
- and a header file
- .Ar prefix Ns tree.h
- containing appropriate declarations of the callback functions used in this
- table, the table itself and definitions for all enums.
- .Pp
- The following options are available:
- .Bl -tag -width ".Fl E"
- .It Fl d
- Switch on debugging.
- .It Fl E
- Extract enumerations and bit constructs.
- In this mode the tool emits
- a header file that contains for each type given on the command line a
- C-enum definition and a preprocessor define that may be used to map
- values to strings.
- .It Fl e
- .Nm
- 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:
- .Bl -tag -width ".Va OIDLEN_ Ns Ar Name"
- .It Va OIDX_ Ns Ar name
- This define can be used to initialize a
- .Va struct asn_oid
- in the following way:
- .Pp
- .Dl const struct asn_oid oid_sysDescr = OIDX_sysDescr;
- .It Va OIDLEN_ Ns Ar name
- is the length of the OID.
- .It Va OID_ Ns Ar name
- is the last component of the OID.
- .El
- .It Fl h
- Print a short help page.
- .It Fl I Ar directory
- Add the named directory to the include path just before the standard include
- directories.
- .It Fl i Ar infile
- Read from the named file instead of standard input.
- .It Fl l
- Generate local preprocessor includes.
- This is used for bootstrapping
- .Xr bsnmpd 1 .
- .It Fl t
- Instead of normal output print the resulting tree.
- .It Fl p Ar prefix
- Prefix the file names and the table name with
- .Ar prefix .
- .El
- .Sh MIBS
- The syntax of the MIB description file can formally be specified as follows:
- .Bd -unfilled -offset indent
- 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 '>'
- .Ed
- .Pp
- .Ar BASETYPE
- specifies a SNMP data type and may be one of
- .Bl -bullet -offset indent -compact
- .It
- NULL
- .It
- INTEGER
- .It
- INTEGER32 (same as INTEGER)
- .It
- UNSIGNED32 (same as GAUGE)
- .It
- OCTETSTRING
- .It
- IPADDRESS
- .It
- OID
- .It
- TIMETICKS
- .It
- COUNTER
- .It
- GAUGE
- .It
- COUNTER64
- .El
- .Pp
- .Ar ACCESS
- specifies the accessibility of the MIB variable (which operation can be
- performed) and is one of
- .Bl -bullet -offset indent -compact
- .It
- GET
- .It
- SET
- .El
- .Pp
- .Ar INT
- is a decimal integer and
- .Ar 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.
- .Pp
- The
- .Ar typedef
- directive associates a type with a single name.
- .Pp
- The
- .Ar include
- directive is replaced by the contents of the named file.
- .Sh EXAMPLES
- The following MIB description describes the system group:
- .Bd -literal -offset indent
- 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)
- ))
- )
- )
- )
- )
- .Ed
- .Sh SEE ALSO
- .Xr bsnmpd 1
- .Sh AUTHORS
- .An Hartmut Brandt Aq harti@FreeBSD.org