diff options
Diffstat (limited to 'static/freebsd/man1/gensnmptree.1')
| -rw-r--r-- | static/freebsd/man1/gensnmptree.1 | 252 |
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 |
