summaryrefslogtreecommitdiff
path: root/static/freebsd/man1/gensnmptree.1
diff options
context:
space:
mode:
Diffstat (limited to 'static/freebsd/man1/gensnmptree.1')
-rw-r--r--static/freebsd/man1/gensnmptree.1252
1 files changed, 252 insertions, 0 deletions
diff --git a/static/freebsd/man1/gensnmptree.1 b/static/freebsd/man1/gensnmptree.1
new file mode 100644
index 00000000..da3b8dbf
--- /dev/null
+++ b/static/freebsd/man1/gensnmptree.1
@@ -0,0 +1,252 @@
+.\"
+.\" Copyright (c) 2001-2005
+.\" Fraunhofer Institute for Open Communication Systems (FhG Fokus).
+.\" All rights reserved.
+.\" Copyright (c) 2006,2018
+.\" 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 April 2, 2019
+.Dt GENSNMPTREE 1
+.Os
+.Sh NAME
+.Nm gensnmptree
+.Nd "generate C and header files from a MIB description file"
+.Sh SYNOPSIS
+.Nm
+.Op Fl dEeFfhlt
+.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 F
+emit definitions for C-functions includeable in a C-file that do some basic
+stuff on enums like value checking and conversion between value and strings.
+.It Fl f
+emit definitions for inline C-functions that do some basic
+stuff on enums like value checking and conversion between value and strings.
+.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 mib-2
+ (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