xref: /freebsd/contrib/bsnmp/snmpd/BEGEMOT-SNMPD.txt (revision d37ea99837e6ad50837fd9fe1771ddf1c3ba6002)
1--
2-- Copyright (c) 2001-2003
3--	Fraunhofer Institute for Open Communication Systems (FhG Fokus).
4--	All rights reserved.
5--
6-- Author: Harti Brandt <harti@freebsd.org>
7--
8-- Redistribution of this software and documentation and use in source and
9-- binary forms, with or without modification, are permitted provided that
10-- the following conditions are met:
11--
12-- 1. Redistributions of source code or documentation must retain the above
13--    copyright notice, this list of conditions and the following disclaimer.
14-- 2. Redistributions in binary form must reproduce the above copyright
15--    notice, this list of conditions and the following disclaimer in the
16--    documentation and/or other materials provided with the distribution.
17-- 3. Neither the name of the Institute nor the names of its contributors
18--    may be used to endorse or promote products derived from this software
19--    without specific prior written permission.
20--
21-- THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY FRAUNHOFER FOKUS
22-- AND ITS CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
23-- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
24-- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
25-- FRAUNHOFER FOKUS OR ITS CONTRIBUTORS  BE LIABLE FOR ANY DIRECT, INDIRECT,
26-- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27-- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
28-- OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
29-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
30-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
31-- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32--
33-- $Begemot: bsnmp/snmpd/BEGEMOT-SNMPD.txt,v 1.22 2004/04/13 15:21:46 novo Exp $
34--
35-- Begemot Private SNMPd MIB.
36--
37BEGEMOT-SNMPD-MIB DEFINITIONS ::= BEGIN
38
39IMPORTS
40    MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY, Counter32,
41    Unsigned32, IpAddress
42	FROM SNMPv2-SMI
43    TEXTUAL-CONVENTION, TruthValue, RowStatus
44	FROM SNMPv2-TC
45    MODULE-COMPLIANCE, OBJECT-GROUP
46	FROM SNMPv2-CONF
47    begemot
48	FROM BEGEMOT-MIB;
49
50begemotSnmpd MODULE-IDENTITY
51    LAST-UPDATED "200212040000Z"
52    ORGANIZATION "Fraunhofer FOKUS, CATS"
53    CONTACT-INFO
54	    "		Hartmut Brandt
55
56	     Postal:	Fraunhofer Institute for Open Communication Systems
57			Kaiserin-Augusta-Allee 31
58			10589 Berlin
59			Germany
60
61	     Fax:	+49 30 3463 7352
62
63	     E-mail:	harti@freebsd.org"
64    DESCRIPTION
65	    "The MIB module for the Begemot SNMP daemon."
66    ::= { begemot 1 }
67
68begemotSnmpdObjects	OBJECT IDENTIFIER ::= { begemotSnmpd 1 }
69begemotSnmpdDefs	OBJECT IDENTIFIER ::= { begemotSnmpd 2 }
70
71-- --------------------------------------------------------------------------
72
73SectionName ::= TEXTUAL-CONVENTION
74    DISPLAY-HINT "14a"
75    STATUS	current
76    DESCRIPTION
77	"Name of a loadable module. Should consist of alphanumeric characers
78	only, the first character must be a letter."
79    SYNTAX	OCTET STRING (SIZE(1..14))
80
81-- --------------------------------------------------------------------------
82--
83-- Agent types
84--
85begemotSnmpdAgent	OBJECT IDENTIFIER ::= { begemotSnmpdDefs 1 }
86
87begemotSnmpdAgentFreeBSD OBJECT-IDENTITY
88    STATUS	current
89    DESCRIPTION
90	    "Identifies the agent as running on FreeBSD."
91    ::= { begemotSnmpdAgent 1 }
92
93-- --------------------------------------------------------------------------
94--
95-- The Config Group
96--
97begemotSnmpdConfig	OBJECT IDENTIFIER ::= { begemotSnmpdObjects 1 }
98
99begemotSnmpdTransmitBuffer OBJECT-TYPE
100    SYNTAX	INTEGER (484..65535)
101    MAX-ACCESS	read-write
102    STATUS	current
103    DESCRIPTION
104	    "The size of the receive buffer in bytes. Larger messages
105	    are dropped by SNMPd."
106    DEFVAL	{ 2048 }
107    ::= { begemotSnmpdConfig 1 }
108
109begemotSnmpdReceiveBuffer OBJECT-TYPE
110    SYNTAX	INTEGER (484..65535)
111    MAX-ACCESS	read-write
112    STATUS	current
113    DESCRIPTION
114	    "The size of the transmit buffer in bytes. Larger messages
115	    cannot be sent by the SNMPd."
116    DEFVAL	{ 2048 }
117    ::= { begemotSnmpdConfig 2 }
118
119begemotSnmpdCommunityDisable OBJECT-TYPE
120    SYNTAX	TruthValue
121    MAX-ACCESS	read-write
122    STATUS	current
123    DESCRIPTION
124	    "Disables all access to the CommunityTable from SNMP. Once
125	    set it cannot be cleared."
126    DEFVAL	{ false }
127    ::= { begemotSnmpdConfig 3 }
128
129begemotSnmpdTrap1Addr OBJECT-TYPE
130    SYNTAX	IpAddress
131    MAX-ACCESS	read-write
132    STATUS	current
133    DESCRIPTION
134	    "The trap sink for v1 traps."
135    ::= { begemotSnmpdConfig 4 }
136
137begemotSnmpdVersionEnable OBJECT-TYPE
138    SYNTAX	Unsigned32
139    MAX-ACCESS	read-only
140    STATUS	current
141    DESCRIPTION
142	    "The SNMP versions that the agent processes. The following
143	    bits are defined:
144
145	    0x00000001	- SNMPv1
146	    0x00000002	- SNMPv2c"
147    DEFVAL	{ 3 }
148    ::= { begemotSnmpdConfig 5 }
149
150--
151-- Trap destinations
152--
153begemotTrapSinkTable OBJECT-TYPE
154    SYNTAX	SEQUENCE OF BegemotTrapSinkEntry
155    MAX-ACCESS	not-accessible
156    STATUS	current
157    DESCRIPTION
158	    "A table with destinations for standard traps."
159    INDEX	{ begemotTrapSinkAddr, begemotTrapSinkPort }
160    ::= { begemotSnmpdObjects 2 }
161
162begemotTrapSinkEntry OBJECT-TYPE
163    SYNTAX	BegemotTrapSinkEntry
164    MAX-ACCESS	not-accessible
165    STATUS	current
166    DESCRIPTION
167	    "Entry describes one trap destination."
168    INDEX	{ begemotTrapSinkAddr, begemotTrapSinkPort }
169    ::= { begemotTrapSinkTable 1 }
170
171BegemotTrapSinkEntry ::= SEQUENCE {
172    begemotTrapSinkAddr		IpAddress,
173    begemotTrapSinkPort		INTEGER,
174    begemotTrapSinkStatus	RowStatus
175}
176
177begemotTrapSinkAddr OBJECT-TYPE
178    SYNTAX	IpAddress
179    MAX-ACCESS	not-accessible
180    STATUS	current
181    DESCRIPTION
182	    "Destination IP address of the manager station where to send
183	    traps."
184    ::= { begemotTrapSinkEntry 1 }
185
186begemotTrapSinkPort OBJECT-TYPE
187    SYNTAX	INTEGER (1..65535)
188    MAX-ACCESS	not-accessible
189    STATUS	current
190    DESCRIPTION
191	    "Destination UDP port of the manager station where to send
192	    traps."
193    ::= { begemotTrapSinkEntry 2 }
194
195begemotTrapSinkStatus OBJECT-TYPE
196    SYNTAX	RowStatus
197    MAX-ACCESS	read-create
198    STATUS	current
199    DESCRIPTION
200	    "Used to create/activate/destroy the entry."
201    ::= { begemotTrapSinkEntry 3 }
202
203--
204-- SNMP port table
205--
206begemotSnmpdPortTable OBJECT-TYPE
207    SYNTAX	SEQUENCE OF BegemotSnmpdPortEntry
208    MAX-ACCESS	not-accessible
209    STATUS	current
210    DESCRIPTION
211	    "A table with descriptions of UDP ports to listen on
212	    for SNMP messages."
213    ::= { begemotSnmpdObjects 4 }
214
215begemotSnmpdPortEntry OBJECT-TYPE
216    SYNTAX	BegemotSnmpdPortEntry
217    MAX-ACCESS	not-accessible
218    STATUS	current
219    DESCRIPTION
220	    "An entry in the table with descriptions of UDP ports to
221	    listen on for SNMP messages."
222    INDEX	{ begemotSnmpdPortAddress, begemotSnmpdPortPort }
223    ::= { begemotSnmpdPortTable 1 }
224
225BegemotSnmpdPortEntry ::= SEQUENCE {
226    begemotSnmpdPortAddress	IpAddress,
227    begemotSnmpdPortPort	INTEGER,
228    begemotSnmpdPortStatus	INTEGER
229}
230
231begemotSnmpdPortAddress OBJECT-TYPE
232    SYNTAX	IpAddress
233    MAX-ACCESS	not-accessible
234    STATUS	current
235    DESCRIPTION
236	    "The IP address to bind to."
237    ::= { begemotSnmpdPortEntry 1 }
238
239begemotSnmpdPortPort OBJECT-TYPE
240    SYNTAX	INTEGER (1..65535)
241    MAX-ACCESS	not-accessible
242    STATUS	current
243    DESCRIPTION
244	    "The UDP port to listen on for SNMP messages."
245    ::= { begemotSnmpdPortEntry 2 }
246
247begemotSnmpdPortStatus OBJECT-TYPE
248    SYNTAX	INTEGER { valid(1), invalid(2) }
249    MAX-ACCESS	read-create
250    STATUS	current
251    DESCRIPTION
252	    "Set status to 1 to create entry, set it to 2 to delete it."
253    ::= { begemotSnmpdPortEntry 3 }
254
255---
256--- Community table
257---
258begemotSnmpdCommunityTable OBJECT-TYPE
259    SYNTAX	SEQUENCE OF BegemotSnmpdCommunityEntry
260    MAX-ACCESS	not-accessible
261    STATUS	current
262    DESCRIPTION
263	    "A table with the community strings for access control."
264    ::= { begemotSnmpdObjects 5 }
265
266begemotSnmpdCommunityEntry OBJECT-TYPE
267    SYNTAX	BegemotSnmpdCommunityEntry
268    MAX-ACCESS	not-accessible
269    STATUS	current
270    DESCRIPTION
271	    "A table with the community strings for access control.
272	    When begemotSnmpdCommDisable is true, this table disappears."
273    INDEX	{ begemotSnmpdCommunityModule, begemotSnmpdCommunityIndex }
274    ::= { begemotSnmpdCommunityTable 1 }
275
276BegemotSnmpdCommunityEntry ::= SEQUENCE {
277    begemotSnmpdCommunityModule	SectionName,
278    begemotSnmpdCommunityIndex	Unsigned32,
279    begemotSnmpdCommunityString	OCTET STRING,
280    begemotSnmpdCommunityDescr	OCTET STRING
281}
282
283begemotSnmpdCommunityModule OBJECT-TYPE
284    SYNTAX	SectionName
285    MAX-ACCESS	not-accessible
286    STATUS	current
287    DESCRIPTION
288	    "Index of the module that has registered this community.
289	    For global communities this is the empty string."
290    ::= { begemotSnmpdCommunityEntry 1 }
291
292begemotSnmpdCommunityIndex OBJECT-TYPE
293    SYNTAX	Unsigned32 (1..4294967295)
294    MAX-ACCESS	not-accessible
295    STATUS	current
296    DESCRIPTION
297	    "The numerical index of the community (private to the module)."
298    ::= { begemotSnmpdCommunityEntry 2 }
299
300begemotSnmpdCommunityString OBJECT-TYPE
301    SYNTAX	OCTET STRING
302    MAX-ACCESS	read-write
303    STATUS	current
304    DESCRIPTION
305	    "The string for access to SNMPd."
306    ::= { begemotSnmpdCommunityEntry 3 }
307
308begemotSnmpdCommunityDescr OBJECT-TYPE
309    SYNTAX	OCTET STRING
310    MAX-ACCESS	read-only
311    STATUS	current
312    DESCRIPTION
313	    "A description what this community is good for."
314    ::= { begemotSnmpdCommunityEntry 4 }
315
316--
317-- Module table
318--
319begemotSnmpdModuleTable OBJECT-TYPE
320    SYNTAX	SEQUENCE OF BegemotSnmpdModuleEntry
321    MAX-ACCESS	not-accessible
322    STATUS	current
323    DESCRIPTION
324	    "A table describing all the currently loaded dynamic modules.
325	    Writing to this table loads and unloads modules."
326    ::= { begemotSnmpdObjects 6 }
327
328begemotSnmpdModuleEntry OBJECT-TYPE
329    SYNTAX	BegemotSnmpdModuleEntry
330    MAX-ACCESS	not-accessible
331    STATUS	current
332    DESCRIPTION
333	    "A table entry describing a loadable module."
334    INDEX	{ begemotSnmpdModuleSection }
335    ::= { begemotSnmpdModuleTable 1 }
336
337BegemotSnmpdModuleEntry ::= SEQUENCE {
338    begemotSnmpdModuleSection	SectionName,
339    begemotSnmpdModulePath	OCTET STRING,
340    begemotSnmpdModuleComment	OCTET STRING
341}
342
343begemotSnmpdModuleSection OBJECT-TYPE
344    SYNTAX	SectionName
345    MAX-ACCESS	not-accessible
346    STATUS	current
347    DESCRIPTION
348	    "The string used for matching configuration file sections
349	    and indexes the module table."
350    ::= { begemotSnmpdModuleEntry 1 }
351
352
353begemotSnmpdModulePath OBJECT-TYPE
354    SYNTAX	OCTET STRING
355    MAX-ACCESS	read-create
356    STATUS	current
357    DESCRIPTION
358	    "The path name of the module. Set to empty string
359	    to unload a module. The path of an existing module
360	    may not be changed."
361    ::= { begemotSnmpdModuleEntry 2 }
362
363begemotSnmpdModuleComment OBJECT-TYPE
364    SYNTAX	OCTET STRING
365    MAX-ACCESS	read-only
366    STATUS	current
367    DESCRIPTION
368	    "A comment describing this module."
369    ::= { begemotSnmpdModuleEntry 3 }
370
371
372-- --------------------------------------------------------------------------
373--
374-- The STATISTICS Group
375--
376begemotSnmpdStats	OBJECT IDENTIFIER ::= { begemotSnmpdObjects 7 }
377
378begemotSnmpdStatsNoRxBufs OBJECT-TYPE
379    SYNTAX	Counter32
380    MAX-ACCESS	read-only
381    STATUS	current
382    DESCRIPTION
383	    "Number of times a receive buffer could not be allocated
384	    for a packet."
385    ::= { begemotSnmpdStats 1 }
386
387begemotSnmpdStatsNoTxBufs OBJECT-TYPE
388    SYNTAX	Counter32
389    MAX-ACCESS	read-only
390    STATUS	current
391    DESCRIPTION
392	    "Number of times a transmit buffer could not be allocated
393	    for a packet."
394    ::= { begemotSnmpdStats 2 }
395
396begemotSnmpdStatsInTooLongPkts OBJECT-TYPE
397    SYNTAX	Counter32
398    MAX-ACCESS	read-only
399    STATUS	current
400    DESCRIPTION
401	    "Number of packets received that were longer than the
402	    receive buffer. These packets are dropped."
403    ::= { begemotSnmpdStats 3 }
404
405begemotSnmpdStatsInBadPduTypes OBJECT-TYPE
406    SYNTAX	Counter32
407    MAX-ACCESS	read-only
408    STATUS	current
409    DESCRIPTION
410	    "Number of packets received with a bad type field."
411    ::= { begemotSnmpdStats 4 }
412
413--
414-- The Debug Group
415--
416begemotSnmpdDebug	OBJECT IDENTIFIER ::= { begemotSnmpdObjects 8 }
417
418begemotSnmpdDebugDumpPdus OBJECT-TYPE
419    SYNTAX	TruthValue
420    MAX-ACCESS	read-write
421    STATUS	current
422    DESCRIPTION
423	    "Dump PDUs to log file if true."
424    DEFVAL	{ false }
425    ::= { begemotSnmpdDebug 1 }
426
427begemotSnmpdDebugSnmpTrace OBJECT-TYPE
428    SYNTAX	Unsigned32
429    MAX-ACCESS	read-write
430    STATUS	current
431    DESCRIPTION
432	    "Tracing flags for the SNMP library. These flags have the
433	    following meaning:
434		0x00000001	trace GET operator
435		0x00000002	trace GETNEXT operator
436		0x00000004	trace SET operator
437		0x00000008	trace dependency processing
438		0x00000010	trace node finding
439		0x10000000	log ASN1 errors
440		0x20000000	log SNMP errors
441	    Individual values can be or-ed together."
442    DEFVAL	{ 0 }
443    ::= { begemotSnmpdDebug 2 }
444
445begemotSnmpdDebugSyslogPri OBJECT-TYPE
446    SYNTAX	INTEGER (0..8)
447    MAX-ACCESS	read-write
448    STATUS	current
449    DESCRIPTION
450	    "Events with this or higher priority should not be logged."
451    DEFVAL	{ 7 }	-- don't log debug messages
452    ::= { begemotSnmpdDebug 3 }
453
454--
455-- Local port table
456--
457begemotSnmpdLocalPortTable OBJECT-TYPE
458    SYNTAX	SEQUENCE OF BegemotSnmpdLocalPortEntry
459    MAX-ACCESS	not-accessible
460    STATUS	current
461    DESCRIPTION
462	    "A table with descriptions of local (unix domain) ports to listen
463	    on for SNMP messages."
464    ::= { begemotSnmpdObjects 9 }
465
466begemotSnmpdLocalPortEntry OBJECT-TYPE
467    SYNTAX	BegemotSnmpdLocalPortEntry
468    MAX-ACCESS	not-accessible
469    STATUS	current
470    DESCRIPTION
471	    "An entry in the table with descriptions of local ports to
472	    listen on for SNMP messages."
473    INDEX	{ begemotSnmpdLocalPortPath }
474    ::= { begemotSnmpdLocalPortTable 1 }
475
476BegemotSnmpdLocalPortEntry ::= SEQUENCE {
477    begemotSnmpdLocalPortPath	OCTET STRING,
478    begemotSnmpdLocalPortStatus	INTEGER,
479    begemotSnmpdLocalPortType	INTEGER
480}
481
482begemotSnmpdLocalPortPath OBJECT-TYPE
483    SYNTAX	OCTET STRING (SIZE(1..104))
484    MAX-ACCESS	not-accessible
485    STATUS	current
486    DESCRIPTION
487	    "The path name to create and listen on."
488    ::= { begemotSnmpdLocalPortEntry 1 }
489
490begemotSnmpdLocalPortStatus OBJECT-TYPE
491    SYNTAX	INTEGER { valid(1), invalid(2) }
492    MAX-ACCESS	read-create
493    STATUS	current
494    DESCRIPTION
495	    "Set status to 1 to create entry, set it to 2 to delete it."
496    ::= { begemotSnmpdLocalPortEntry 2 }
497
498begemotSnmpdLocalPortType OBJECT-TYPE
499    SYNTAX	INTEGER {
500			dgram-unpriv(1),
501			dgram-priv(2),
502			stream-unpriv(3),
503			stream-priv(4)
504		}
505    MAX-ACCESS	read-create
506    STATUS	current
507    DESCRIPTION
508	    "Type of the port. If the type is unpriv SET operations
509	    are allowed from all clients if the community matches. For
510	    priv SET operations are allowed only from peers with uid
511	    zero. If the daemon cannot determine the peer uid it disallows
512	    the SET operation for -priv ports."
513    ::= { begemotSnmpdLocalPortEntry 3 }
514
515--
516-- Transport mapping table
517--
518begemotSnmpdTransportMappings	OBJECT IDENTIFIER ::= { begemotSnmpdObjects 10 }
519
520begemotSnmpdTransportTable OBJECT-TYPE
521    SYNTAX	SEQUENCE OF BegemotSnmpdTransportEntry
522    MAX-ACCESS	not-accessible
523    STATUS	current
524    DESCRIPTION
525	    "A table containing all the currently loaded transport mappings."
526    ::= { begemotSnmpdTransportMappings 1 }
527
528begemotSnmpdTransportEntry OBJECT-TYPE
529    SYNTAX	BegemotSnmpdTransportEntry
530    MAX-ACCESS	not-accessible
531    STATUS	current
532    DESCRIPTION
533	    "An entry in the table with the transport mappings."
534    INDEX	{ begemotSnmpdTransportName }
535    ::= { begemotSnmpdTransportTable 1 }
536
537BegemotSnmpdTransportEntry ::= SEQUENCE {
538    begemotSnmpdTransportName	OCTET STRING,
539    begemotSnmpdTransportStatus	INTEGER,
540    begemotSnmpdTransportOid	OBJECT IDENTIFIER
541}
542
543begemotSnmpdTransportName OBJECT-TYPE
544    SYNTAX	OCTET STRING (SIZE(1..256))
545    MAX-ACCESS	not-accessible
546    STATUS	current
547    DESCRIPTION
548	    "The name of the mapping."
549    ::= { begemotSnmpdTransportEntry 1 }
550
551begemotSnmpdTransportStatus OBJECT-TYPE
552    SYNTAX	RowStatus
553    MAX-ACCESS	read-only
554    STATUS	current
555    DESCRIPTION
556	    "Used to create/activate/destroy the entry."
557    ::= { begemotSnmpdTransportEntry 2 }
558
559begemotSnmpdTransportOid OBJECT-TYPE
560    SYNTAX	OBJECT IDENTIFIER
561    MAX-ACCESS	read-only
562    STATUS	current
563    DESCRIPTION
564	    "A pointer to the group with the transport-dependend stuff."
565    ::= { begemotSnmpdTransportEntry 3 }
566
567--
568-- XXX These should go into their own MIB
569--
570begemotSnmpdTransUdp	OBJECT IDENTIFIER ::= { begemotSnmpdTransportMappings 2 }
571begemotSnmpdTransLsock	OBJECT IDENTIFIER ::= { begemotSnmpdTransportMappings 3 }
572
573END
574