2 -- Copyright (c) 2001-2003
3 -- Fraunhofer Institute for Open Communication Systems (FhG Fokus).
4 -- All rights reserved.
8 -- All rights reserved.
10 -- Author: Harti Brandt <harti@freebsd.org>
12 -- Redistribution and use in source and binary forms, with or without
13 -- modification, are permitted provided that the following conditions
15 -- 1. Redistributions of source code must retain the above copyright
16 -- notice, this list of conditions and the following disclaimer.
17 -- 2. Redistributions in binary form must reproduce the above copyright
18 -- notice, this list of conditions and the following disclaimer in the
19 -- documentation and/or other materials provided with the distribution.
21 -- THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
22 -- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 -- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 -- ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
25 -- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 -- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 -- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 -- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 -- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 -- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 -- $Begemot: bsnmp/snmpd/BEGEMOT-SNMPD.txt,v 1.23 2004/08/06 08:47:08 brandt Exp $
35 -- Begemot Private SNMPd MIB.
37 BEGEMOT-SNMPD-MIB DEFINITIONS ::= BEGIN
40 MODULE-IDENTITY, OBJECT-TYPE, OBJECT-IDENTITY, Counter32,
41 Integer32, Unsigned32, IpAddress
43 TEXTUAL-CONVENTION, TruthValue, RowStatus
45 InetAddressType, InetAddress, InetPortNumber
50 begemotSnmpd MODULE-IDENTITY
51 LAST-UPDATED "201808080000Z"
52 ORGANIZATION "Fraunhofer FOKUS, CATS"
56 Postal: Fraunhofer Institute for Open Communication Systems
57 Kaiserin-Augusta-Allee 31
63 E-mail: harti@freebsd.org"
65 "The MIB module for the Begemot SNMP daemon."
66 REVISION "201808080000Z"
68 "Add the begemotSnmpdTransInetTable."
71 begemotSnmpdObjects OBJECT IDENTIFIER ::= { begemotSnmpd 1 }
72 begemotSnmpdDefs OBJECT IDENTIFIER ::= { begemotSnmpd 2 }
74 -- --------------------------------------------------------------------------
76 SectionName ::= TEXTUAL-CONVENTION
80 "Name of a loadable module. Should consist of alphanumeric characers
81 only, the first character must be a letter."
82 SYNTAX OCTET STRING (SIZE(1..14))
84 -- --------------------------------------------------------------------------
88 begemotSnmpdAgent OBJECT IDENTIFIER ::= { begemotSnmpdDefs 1 }
90 begemotSnmpdAgentFreeBSD OBJECT-IDENTITY
93 "Identifies the agent as running on FreeBSD."
94 ::= { begemotSnmpdAgent 1 }
96 -- --------------------------------------------------------------------------
100 begemotSnmpdConfig OBJECT IDENTIFIER ::= { begemotSnmpdObjects 1 }
102 begemotSnmpdTransmitBuffer OBJECT-TYPE
103 SYNTAX Integer32 (484..65535)
104 MAX-ACCESS read-write
107 "The size of the receive buffer in bytes. Larger messages
108 are dropped by SNMPd."
110 ::= { begemotSnmpdConfig 1 }
112 begemotSnmpdReceiveBuffer OBJECT-TYPE
113 SYNTAX Integer32 (484..65535)
114 MAX-ACCESS read-write
117 "The size of the transmit buffer in bytes. Larger messages
118 cannot be sent by the SNMPd."
120 ::= { begemotSnmpdConfig 2 }
122 begemotSnmpdCommunityDisable OBJECT-TYPE
124 MAX-ACCESS read-write
127 "Disables all access to the CommunityTable from SNMP. Once
128 set it cannot be cleared."
130 ::= { begemotSnmpdConfig 3 }
132 begemotSnmpdTrap1Addr OBJECT-TYPE
134 MAX-ACCESS read-write
137 "The trap sink for v1 traps."
138 ::= { begemotSnmpdConfig 4 }
140 begemotSnmpdVersionEnable OBJECT-TYPE
145 "The SNMP versions that the agent processes. The following
152 ::= { begemotSnmpdConfig 5 }
157 begemotTrapSinkTable OBJECT-TYPE
158 SYNTAX SEQUENCE OF BegemotTrapSinkEntry
159 MAX-ACCESS not-accessible
162 "A table with destinations for standard traps."
163 INDEX { begemotTrapSinkAddr, begemotTrapSinkPort }
164 ::= { begemotSnmpdObjects 2 }
166 begemotTrapSinkEntry OBJECT-TYPE
167 SYNTAX BegemotTrapSinkEntry
168 MAX-ACCESS not-accessible
171 "Entry describes one trap destination."
172 INDEX { begemotTrapSinkAddr, begemotTrapSinkPort }
173 ::= { begemotTrapSinkTable 1 }
175 BegemotTrapSinkEntry ::= SEQUENCE {
176 begemotTrapSinkAddr IpAddress,
177 begemotTrapSinkPort INTEGER,
178 begemotTrapSinkStatus RowStatus
181 begemotTrapSinkAddr OBJECT-TYPE
183 MAX-ACCESS not-accessible
186 "Destination IP address of the manager station where to send
188 ::= { begemotTrapSinkEntry 1 }
190 begemotTrapSinkPort OBJECT-TYPE
191 SYNTAX Integer32 (1..65535)
192 MAX-ACCESS not-accessible
195 "Destination UDP port of the manager station where to send
197 ::= { begemotTrapSinkEntry 2 }
199 begemotTrapSinkStatus OBJECT-TYPE
201 MAX-ACCESS read-create
204 "Used to create/activate/destroy the entry."
205 ::= { begemotTrapSinkEntry 3 }
210 begemotSnmpdPortTable OBJECT-TYPE
211 SYNTAX SEQUENCE OF BegemotSnmpdPortEntry
212 MAX-ACCESS not-accessible
215 "A table with descriptions of UDP ports to listen on
217 ::= { begemotSnmpdObjects 4 }
219 begemotSnmpdPortEntry OBJECT-TYPE
220 SYNTAX BegemotSnmpdPortEntry
221 MAX-ACCESS not-accessible
224 "An entry in the table with descriptions of UDP ports to
225 listen on for SNMP messages."
226 INDEX { begemotSnmpdPortAddress, begemotSnmpdPortPort }
227 ::= { begemotSnmpdPortTable 1 }
229 BegemotSnmpdPortEntry ::= SEQUENCE {
230 begemotSnmpdPortAddress IpAddress,
231 begemotSnmpdPortPort INTEGER,
232 begemotSnmpdPortStatus INTEGER
235 begemotSnmpdPortAddress OBJECT-TYPE
237 MAX-ACCESS not-accessible
240 "The IP address to bind to."
241 ::= { begemotSnmpdPortEntry 1 }
243 begemotSnmpdPortPort OBJECT-TYPE
244 SYNTAX Integer32 (1..65535)
245 MAX-ACCESS not-accessible
248 "The UDP port to listen on for SNMP messages."
249 ::= { begemotSnmpdPortEntry 2 }
251 begemotSnmpdPortStatus OBJECT-TYPE
252 SYNTAX INTEGER { valid(1), invalid(2) }
253 MAX-ACCESS read-create
256 "Set status to 1 to create entry, set it to 2 to delete it."
257 ::= { begemotSnmpdPortEntry 3 }
262 begemotSnmpdCommunityTable OBJECT-TYPE
263 SYNTAX SEQUENCE OF BegemotSnmpdCommunityEntry
264 MAX-ACCESS not-accessible
267 "A table with the community strings for access control."
268 ::= { begemotSnmpdObjects 5 }
270 begemotSnmpdCommunityEntry OBJECT-TYPE
271 SYNTAX BegemotSnmpdCommunityEntry
272 MAX-ACCESS not-accessible
275 "A table with the community strings for access control.
276 When begemotSnmpdCommDisable is true, this table disappears."
277 INDEX { begemotSnmpdCommunityModule, begemotSnmpdCommunityIndex }
278 ::= { begemotSnmpdCommunityTable 1 }
280 BegemotSnmpdCommunityEntry ::= SEQUENCE {
281 begemotSnmpdCommunityModule SectionName,
282 begemotSnmpdCommunityIndex Unsigned32,
283 begemotSnmpdCommunityString OCTET STRING,
284 begemotSnmpdCommunityDescr OCTET STRING,
285 begemotSnmpdCommunityPermission Unsigned32
288 begemotSnmpdCommunityModule OBJECT-TYPE
290 MAX-ACCESS not-accessible
293 "Index of the module that has registered this community.
294 For global communities this is the empty string."
295 ::= { begemotSnmpdCommunityEntry 1 }
297 begemotSnmpdCommunityIndex OBJECT-TYPE
298 SYNTAX Unsigned32 (1..4294967295)
299 MAX-ACCESS not-accessible
302 "The numerical index of the community (private to the module)."
303 ::= { begemotSnmpdCommunityEntry 2 }
305 begemotSnmpdCommunityString OBJECT-TYPE
307 MAX-ACCESS read-write
310 "The string for access to SNMPd."
311 ::= { begemotSnmpdCommunityEntry 3 }
313 begemotSnmpdCommunityDescr OBJECT-TYPE
318 "A description what this community is good for."
319 ::= { begemotSnmpdCommunityEntry 4 }
321 begemotSnmpdCommunityPermission OBJECT-TYPE
322 SYNTAX Unsigned32 (1..4294967295)
323 MAX-ACCESS not-accessible
326 "The numerical value of access rights granted to the community."
327 ::= { begemotSnmpdCommunityEntry 5 }
332 begemotSnmpdModuleTable OBJECT-TYPE
333 SYNTAX SEQUENCE OF BegemotSnmpdModuleEntry
334 MAX-ACCESS not-accessible
337 "A table describing all the currently loaded dynamic modules.
338 Writing to this table loads and unloads modules."
339 ::= { begemotSnmpdObjects 6 }
341 begemotSnmpdModuleEntry OBJECT-TYPE
342 SYNTAX BegemotSnmpdModuleEntry
343 MAX-ACCESS not-accessible
346 "A table entry describing a loadable module."
347 INDEX { begemotSnmpdModuleSection }
348 ::= { begemotSnmpdModuleTable 1 }
350 BegemotSnmpdModuleEntry ::= SEQUENCE {
351 begemotSnmpdModuleSection SectionName,
352 begemotSnmpdModulePath OCTET STRING,
353 begemotSnmpdModuleComment OCTET STRING
356 begemotSnmpdModuleSection OBJECT-TYPE
358 MAX-ACCESS not-accessible
361 "The string used for matching configuration file sections
362 and indexes the module table."
363 ::= { begemotSnmpdModuleEntry 1 }
366 begemotSnmpdModulePath OBJECT-TYPE
368 MAX-ACCESS read-create
371 "The path name of the module. Set to empty string
372 to unload a module. The path of an existing module
374 ::= { begemotSnmpdModuleEntry 2 }
376 begemotSnmpdModuleComment OBJECT-TYPE
381 "A comment describing this module."
382 ::= { begemotSnmpdModuleEntry 3 }
385 -- --------------------------------------------------------------------------
387 -- The STATISTICS Group
389 begemotSnmpdStats OBJECT IDENTIFIER ::= { begemotSnmpdObjects 7 }
391 begemotSnmpdStatsNoRxBufs OBJECT-TYPE
396 "Number of times a receive buffer could not be allocated
398 ::= { begemotSnmpdStats 1 }
400 begemotSnmpdStatsNoTxBufs OBJECT-TYPE
405 "Number of times a transmit buffer could not be allocated
407 ::= { begemotSnmpdStats 2 }
409 begemotSnmpdStatsInTooLongPkts OBJECT-TYPE
414 "Number of packets received that were longer than the
415 receive buffer. These packets are dropped."
416 ::= { begemotSnmpdStats 3 }
418 begemotSnmpdStatsInBadPduTypes OBJECT-TYPE
423 "Number of packets received with a bad type field."
424 ::= { begemotSnmpdStats 4 }
429 begemotSnmpdDebug OBJECT IDENTIFIER ::= { begemotSnmpdObjects 8 }
431 begemotSnmpdDebugDumpPdus OBJECT-TYPE
433 MAX-ACCESS read-write
436 "Dump PDUs to log file if true."
438 ::= { begemotSnmpdDebug 1 }
440 begemotSnmpdDebugSnmpTrace OBJECT-TYPE
442 MAX-ACCESS read-write
445 "Tracing flags for the SNMP library. These flags have the
447 0x00000001 trace GET operator
448 0x00000002 trace GETNEXT operator
449 0x00000004 trace SET operator
450 0x00000008 trace dependency processing
451 0x00000010 trace node finding
452 0x10000000 log ASN1 errors
453 0x20000000 log SNMP errors
454 Individual values can be or-ed together."
456 ::= { begemotSnmpdDebug 2 }
458 begemotSnmpdDebugSyslogPri OBJECT-TYPE
459 SYNTAX Integer32 (0..8)
460 MAX-ACCESS read-write
463 "Events with this or higher priority should not be logged."
464 DEFVAL { 7 } -- don't log debug messages
465 ::= { begemotSnmpdDebug 3 }
470 begemotSnmpdLocalPortTable OBJECT-TYPE
471 SYNTAX SEQUENCE OF BegemotSnmpdLocalPortEntry
472 MAX-ACCESS not-accessible
475 "A table with descriptions of local (unix domain) ports to listen
476 on for SNMP messages."
477 ::= { begemotSnmpdObjects 9 }
479 begemotSnmpdLocalPortEntry OBJECT-TYPE
480 SYNTAX BegemotSnmpdLocalPortEntry
481 MAX-ACCESS not-accessible
484 "An entry in the table with descriptions of local ports to
485 listen on for SNMP messages."
486 INDEX { begemotSnmpdLocalPortPath }
487 ::= { begemotSnmpdLocalPortTable 1 }
489 BegemotSnmpdLocalPortEntry ::= SEQUENCE {
490 begemotSnmpdLocalPortPath OCTET STRING,
491 begemotSnmpdLocalPortStatus INTEGER,
492 begemotSnmpdLocalPortType INTEGER
495 begemotSnmpdLocalPortPath OBJECT-TYPE
496 SYNTAX OCTET STRING (SIZE(1..104))
497 MAX-ACCESS not-accessible
500 "The path name to create and listen on."
501 ::= { begemotSnmpdLocalPortEntry 1 }
503 begemotSnmpdLocalPortStatus OBJECT-TYPE
504 SYNTAX INTEGER { valid(1), invalid(2) }
505 MAX-ACCESS read-create
508 "Set status to 1 to create entry, set it to 2 to delete it."
509 ::= { begemotSnmpdLocalPortEntry 2 }
511 begemotSnmpdLocalPortType OBJECT-TYPE
518 MAX-ACCESS read-create
521 "Type of the port. If the type is unpriv SET operations
522 are allowed from all clients if the community matches. For
523 priv SET operations are allowed only from peers with uid
524 zero. If the daemon cannot determine the peer uid it disallows
525 the SET operation for -priv ports."
526 ::= { begemotSnmpdLocalPortEntry 3 }
529 -- Transport mapping table
531 begemotSnmpdTransportMappings OBJECT IDENTIFIER ::= { begemotSnmpdObjects 10 }
533 begemotSnmpdTransportTable OBJECT-TYPE
534 SYNTAX SEQUENCE OF BegemotSnmpdTransportEntry
535 MAX-ACCESS not-accessible
538 "A table containing all the currently loaded transport mappings."
539 ::= { begemotSnmpdTransportMappings 1 }
541 begemotSnmpdTransportEntry OBJECT-TYPE
542 SYNTAX BegemotSnmpdTransportEntry
543 MAX-ACCESS not-accessible
546 "An entry in the table with the transport mappings."
547 INDEX { begemotSnmpdTransportName }
548 ::= { begemotSnmpdTransportTable 1 }
550 BegemotSnmpdTransportEntry ::= SEQUENCE {
551 begemotSnmpdTransportName OCTET STRING,
552 begemotSnmpdTransportStatus INTEGER,
553 begemotSnmpdTransportOid OBJECT IDENTIFIER
556 begemotSnmpdTransportName OBJECT-TYPE
557 SYNTAX OCTET STRING (SIZE(1..256))
558 MAX-ACCESS not-accessible
561 "The name of the mapping."
562 ::= { begemotSnmpdTransportEntry 1 }
564 begemotSnmpdTransportStatus OBJECT-TYPE
569 "Used to create/activate/destroy the entry."
570 ::= { begemotSnmpdTransportEntry 2 }
572 begemotSnmpdTransportOid OBJECT-TYPE
573 SYNTAX OBJECT IDENTIFIER
577 "A pointer to the group with the transport-dependend stuff."
578 ::= { begemotSnmpdTransportEntry 3 }
580 -- ----------------------------------------------------------------------
582 -- Internet port table.
584 BegemotSnmpdTransportProto ::= TEXTUAL-CONVENTION
587 "A value that represents the type of protocol to be used for
588 listening on a socket. The following protocols are currently
591 udp(1) Use UDP for IPv4 and IPv6 sockets."
596 begemotSnmpdTransInetTable OBJECT-TYPE
597 SYNTAX SEQUENCE OF BegemotSnmpdTransInetEntry
598 MAX-ACCESS not-accessible
601 "This table contains all the ports the daemon should listen on.
602 Entries can be created at initialization time via the config
603 file or at run time via a SET. One row can map to several open
604 sockets in the case of InetAddressType::dns rows. These rows
605 open one socket for each address returned by getaddrinfo(3).
607 ::= { begemotSnmpdObjects 11 }
609 begemotSnmpdTransInetEntry OBJECT-TYPE
610 SYNTAX BegemotSnmpdTransInetEntry
611 MAX-ACCESS not-accessible
614 "A row of the internet port table. Each row may map to one or
615 more listening sockets."
617 begemotSnmpdTransInetAddressType,
618 begemotSnmpdTransInetAddress,
619 begemotSnmpdTransInetPort,
620 begemotSnmpdTransInetProto
622 ::= { begemotSnmpdTransInetTable 1 }
624 BegemotSnmpdTransInetEntry ::= SEQUENCE {
625 begemotSnmpdTransInetAddressType InetAddressType,
626 begemotSnmpdTransInetAddress InetAddress,
627 begemotSnmpdTransInetPort InetPortNumber,
628 begemotSnmpdTransInetProto BegemotSnmpdTransportProto,
629 begemotSnmpdTransInetStatus RowStatus
632 begemotSnmpdTransInetAddressType OBJECT-TYPE
633 SYNTAX InetAddressType
634 MAX-ACCESS not-accessible
637 "The type of the address. Only ipv4, ipv6, ipv6z and dns are
639 ::= { begemotSnmpdTransInetEntry 1 }
641 begemotSnmpdTransInetAddress OBJECT-TYPE
642 SYNTAX InetAddress (SIZE (0..64))
643 MAX-ACCESS not-accessible
646 "The address. For ipv4 addresses the length must be 4, ipv6
647 addresses have a length of 16 and ipv6z addresses a length of
648 20 where the last four bytes are the interface index in big
649 endian format. dns addresses may be of zero-length in which case
650 getaddrinfo() generates INADDR_ANY and its IPv6 equivalent. dns
651 addresses will open a socket for all addresses returned by
653 ::= { begemotSnmpdTransInetEntry 2 }
655 begemotSnmpdTransInetPort OBJECT-TYPE
656 SYNTAX InetPortNumber (1..65535)
657 MAX-ACCESS not-accessible
660 "The port to listen on for SNMP messages."
661 ::= { begemotSnmpdTransInetEntry 3 }
663 begemotSnmpdTransInetProto OBJECT-TYPE
664 SYNTAX BegemotSnmpdTransportProto
665 MAX-ACCESS not-accessible
668 "The protocol to use. Currently only the value udp(1) is supported."
669 ::= { begemotSnmpdTransInetEntry 4 }
671 begemotSnmpdTransInetStatus OBJECT-TYPE
673 MAX-ACCESS read-create
676 "The status of the conceptual row. A row may be created using
677 createAndGo(4) or createAndWait(5). An inactive row can be
678 activated writing active(1) and an active row can be inactivated
679 by writing notInService(2). Finally active or inactive rows can be
680 deleted by writing the value destroy(6). The value of this field
681 will never read as notReady(3)."
682 ::= { begemotSnmpdTransInetEntry 5 }
685 -- XXX These should go into their own MIB
687 begemotSnmpdTransUdp OBJECT IDENTIFIER ::= { begemotSnmpdTransportMappings 2 }
688 begemotSnmpdTransLsock OBJECT IDENTIFIER ::= { begemotSnmpdTransportMappings 3 }
689 begemotSnmpdTransInet OBJECT IDENTIFIER ::= { begemotSnmpdTransportMappings 4 }