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--
18-- THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY FRAUNHOFER FOKUS
19-- AND ITS CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
20-- INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
21-- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
22-- FRAUNHOFER FOKUS OR ITS CONTRIBUTORS  BE LIABLE FOR ANY DIRECT, INDIRECT,
23-- INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24-- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
25-- OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
26-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28-- EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29--
30-- Private MIB for netgraph part of Begemot SNMP daemon.
31--
32BEGEMOT-NETGRAPH-MIB DEFINITIONS ::= BEGIN
33
34IMPORTS
35    MODULE-IDENTITY, OBJECT-TYPE, Counter32, Unsigned32
36	FROM SNMPv2-SMI
37    TEXTUAL-CONVENTION, TruthValue
38	FROM SNMPv2-TC
39    MODULE-COMPLIANCE, OBJECT-GROUP
40	FROM SNMPv2-CONF
41    begemot
42	FROM BEGEMOT-MIB;
43
44begemotNg MODULE-IDENTITY
45    LAST-UPDATED "200311140000Z"
46    ORGANIZATION "Fraunhofer FOKUS, CATS"
47    CONTACT-INFO
48	    "		Hartmut Brandt
49
50	     Postal:	Fraunhofer Institute for Open Communication Systems
51			Kaiserin-Augusta-Allee 31
52			10589 Berlin
53			Germany
54
55	     Fax:	+49 30 3463 7352
56
57	     E-mail:	harti@freebsd.org"
58    DESCRIPTION
59	    "The MIB for the NetGraph access module for SNMP."
60    REVISION "200311140000Z"
61    DESCRIPTION
62	    "The maximum width of the following OCTET STRINGs was increased
63	    from 15 to 31:
64
65	    - NgTypeName
66	    - NgNodeName
67	    - NgNodeNameOrEmpty
68	    - NgHookName
69	    "
70    REVISION "200201310000Z"
71    DESCRIPTION
72	    "Initial revision."
73    ::= { begemot 2 }
74
75begemotNgObjects	OBJECT IDENTIFIER ::= { begemotNg 1 }
76
77-- --------------------------------------------------------------------------
78
79NgTypeName ::= TEXTUAL-CONVENTION
80    DISPLAY-HINT "31a"
81    STATUS	current
82    DESCRIPTION
83	"Name of a netgraph type."
84    SYNTAX	OCTET STRING (SIZE(1..31))
85
86NgNodeName ::= TEXTUAL-CONVENTION
87    DISPLAY-HINT "31a"
88    STATUS	current
89    DESCRIPTION
90	"Name of a netgraph node."
91    SYNTAX	OCTET STRING (SIZE(1..31))
92
93NgNodeNameOrEmpty ::= TEXTUAL-CONVENTION
94    DISPLAY-HINT "31a"
95    STATUS	current
96    DESCRIPTION
97	"Name of a netgraph node."
98    SYNTAX	OCTET STRING (SIZE(0..31))
99
100NgHookName ::= TEXTUAL-CONVENTION
101    DISPLAY-HINT "31a"
102    STATUS	current
103    DESCRIPTION
104	"Name of a netgraph hook."
105    SYNTAX	OCTET STRING (SIZE(1..31))
106
107NgNodeId ::= TEXTUAL-CONVENTION
108    DISPLAY-HINT "x"
109    STATUS	current
110    DESCRIPTION
111	"Node identifier."
112    SYNTAX	Unsigned32 (1..4294967295)
113
114NgNodeIdOrZero ::= TEXTUAL-CONVENTION
115    DISPLAY-HINT "x"
116    STATUS	current
117    DESCRIPTION
118	"Node identifier or 0 for 'no-node'."
119    SYNTAX	Unsigned32 (0..4294967295)
120
121-- --------------------------------------------------------------------------
122--
123-- Configuration parameters
124--
125begemotNgConfig	OBJECT IDENTIFIER ::= { begemotNgObjects 1 }
126
127begemotNgControlNodeName OBJECT-TYPE
128    SYNTAX	NgNodeName
129    MAX-ACCESS	read-only
130    STATUS	current
131    DESCRIPTION
132	    "The name of the netgraph node of this daemon. The name is
133	    writeable during initialisation. If the name is set from
134	    the empty string to the non-empty string, the netgraph socket
135	    is created. Once set it cannot be changed."
136    ::= { begemotNgConfig 1 }
137
138begemotNgResBufSiz OBJECT-TYPE
139    SYNTAX	INTEGER (1024..65536)
140    MAX-ACCESS	read-write
141    STATUS	current
142    DESCRIPTION
143	    "The size of the receive buffers for netgraph messages."
144    DEFVAL	{ 20000 }
145    ::= { begemotNgConfig 2 }
146
147begemotNgTimeout OBJECT-TYPE
148    SYNTAX	INTEGER (10..10000)
149    UNITS	"milliseconds"
150    MAX-ACCESS	read-write
151    STATUS	current
152    DESCRIPTION
153	    "The maximum time to wait for a response to a netgraph message."
154    DEFVAL	{ 1000 }
155    ::= { begemotNgConfig 3 }
156
157begemotNgDebugLevel OBJECT-TYPE
158    SYNTAX	Unsigned32
159    MAX-ACCESS	read-write
160    STATUS	current
161    DESCRIPTION
162	    "The netgraph library debug level. This should be set only
163	    if the daemon is run with a terminal attached."
164    DEFVAL	{ 0 }
165    ::= { begemotNgConfig 4 }
166
167-- --------------------------------------------------------------------------
168--
169-- The STATISTICS Group
170--
171begemotNgStats	OBJECT IDENTIFIER ::= { begemotNgObjects 2 }
172
173begemotNgNoMems OBJECT-TYPE
174    SYNTAX	Counter32
175    MAX-ACCESS	read-only
176    STATUS	current
177    DESCRIPTION
178	    "Number of times a memory allocation has failed for buffers
179	    or the message queue."
180    ::= { begemotNgStats 1 }
181
182begemotNgMsgReadErrs OBJECT-TYPE
183    SYNTAX	Counter32
184    MAX-ACCESS	read-only
185    STATUS	current
186    DESCRIPTION
187	    "Number of times reading a netgraph message has failed."
188    ::= { begemotNgStats 2 }
189
190begemotNgTooLargeMsgs OBJECT-TYPE
191    SYNTAX	Counter32
192    MAX-ACCESS	read-only
193    STATUS	current
194    DESCRIPTION
195	    "Number of times a netgraph message was too large for
196	    the buffer. Try increasing begemotNgResBufSiz if
197	    this happens."
198    ::= { begemotNgStats 3 }
199
200begemotNgDataReadErrs OBJECT-TYPE
201    SYNTAX	Counter32
202    MAX-ACCESS	read-only
203    STATUS	current
204    DESCRIPTION
205	    "Number of times reading a netgraph data message has failed."
206    ::= { begemotNgStats 4 }
207
208begemotNgTooLargeDatas OBJECT-TYPE
209    SYNTAX	Counter32
210    MAX-ACCESS	read-only
211    STATUS	current
212    DESCRIPTION
213	    "Number of times a netgraph data message was too large.
214	    You need to increase begemotNgResBufSiz."
215    ::= { begemotNgStats 5 }
216
217-- -----------------------------------------------------
218--
219-- The NODE table
220--
221begemotNgTypeTable OBJECT-TYPE
222    SYNTAX	SEQUENCE OF BegemotNgTypeEntry
223    MAX-ACCESS	not-accessible
224    STATUS	current
225    DESCRIPTION
226	    "A table containing information about all netgraph node types."
227    ::= { begemotNgObjects 3 }
228
229begemotNgTypeEntry OBJECT-TYPE
230    SYNTAX	BegemotNgTypeEntry
231    MAX-ACCESS	not-accessible
232    STATUS	current
233    DESCRIPTION
234	    "Table entry that describes one netgraph node."
235    INDEX	{ begemotNgTypeName }
236    ::= { begemotNgTypeTable 1 }
237
238BegemotNgTypeEntry ::= SEQUENCE {
239    begemotNgTypeName	NgTypeName,
240    begemotNgTypeStatus	INTEGER
241}
242
243begemotNgTypeName OBJECT-TYPE
244    SYNTAX	NgTypeName
245    MAX-ACCESS	not-accessible
246    STATUS	current
247    DESCRIPTION
248	    "The name of the type. Used as index."
249    ::= { begemotNgTypeEntry 1 }
250
251begemotNgTypeStatus OBJECT-TYPE
252    SYNTAX	INTEGER { loaded(1), unloaded(2) }
253    MAX-ACCESS	read-create
254    STATUS	current
255    DESCRIPTION
256	    "If loaded then the node type is available. A type can be load
257	    by setting this field to loaded. It is unload if the field is
258	    set to unloaded. Note, that a type cannot be unloaded if it
259	    is compiled into the kernel or has nodes of this type. The name
260	    of the file containing the type implementation is constructed by
261	    prepending ng_ to the type name."
262    ::= { begemotNgTypeEntry 2 }
263
264--
265-- Node table
266--
267begemotNgNodeTable OBJECT-TYPE
268    SYNTAX	SEQUENCE OF BegemotNgNodeEntry
269    MAX-ACCESS	not-accessible
270    STATUS	current
271    DESCRIPTION
272	    "A table containing information about all netgraph nodes."
273    ::= { begemotNgObjects 4 }
274
275begemotNgNodeEntry OBJECT-TYPE
276    SYNTAX	BegemotNgNodeEntry
277    MAX-ACCESS	not-accessible
278    STATUS	current
279    DESCRIPTION
280	    "Table entry that describes one netgraph node."
281    INDEX	{ begemotNgNodeId }
282    ::= { begemotNgNodeTable 1 }
283
284BegemotNgNodeEntry ::= SEQUENCE {
285    begemotNgNodeId	NgNodeId,
286    begemotNgNodeStatus INTEGER,
287    begemotNgNodeName	NgNodeNameOrEmpty,
288    begemotNgNodeType	NgTypeName,
289    begemotNgNodeHooks	Unsigned32
290}
291
292begemotNgNodeId OBJECT-TYPE
293    SYNTAX	NgNodeId
294    MAX-ACCESS	not-accessible
295    STATUS	current
296    DESCRIPTION
297	    "The 32bit node id of this node. 0 is an illegal value."
298    ::= { begemotNgNodeEntry 1 }
299
300begemotNgNodeStatus OBJECT-TYPE
301    SYNTAX	INTEGER { valid(1), invalid(2) }
302    MAX-ACCESS	read-only
303    STATUS	current
304    DESCRIPTION
305	    "Indicates whether the node exists or not."
306    ::= { begemotNgNodeEntry 2 }
307
308begemotNgNodeName OBJECT-TYPE
309    SYNTAX	NgNodeNameOrEmpty
310    MAX-ACCESS	read-only
311    STATUS	current
312    DESCRIPTION
313	    "Name of the node (if any)."
314    ::= { begemotNgNodeEntry 3 }
315
316begemotNgNodeType OBJECT-TYPE
317    SYNTAX	NgTypeName
318    MAX-ACCESS	read-only
319    STATUS	current
320    DESCRIPTION
321	    "Type name of the node."
322    ::= { begemotNgNodeEntry 4 }
323
324begemotNgNodeHooks OBJECT-TYPE
325    SYNTAX	Unsigned32
326    MAX-ACCESS	read-only
327    STATUS	current
328    DESCRIPTION
329	    "Number of hooks on this node."
330    ::= { begemotNgNodeEntry 5 }
331
332--
333-- Hook table
334--
335begemotNgHookTable OBJECT-TYPE
336    SYNTAX	SEQUENCE OF BegemotNgHookEntry
337    MAX-ACCESS	not-accessible
338    STATUS	current
339    DESCRIPTION
340	    "A table containing information about all netgraph hooks."
341    ::= { begemotNgObjects 5 }
342
343begemotNgHookEntry OBJECT-TYPE
344    SYNTAX	BegemotNgHookEntry
345    MAX-ACCESS	not-accessible
346    STATUS	current
347    DESCRIPTION
348	    "Table entry that describes one netgraph node."
349    INDEX	{ begemotNgHookNodeId, begemotNgHookHook }
350    ::= { begemotNgHookTable 1 }
351
352BegemotNgHookEntry ::= SEQUENCE {
353    begemotNgHookNodeId		NgNodeId,
354    begemotNgHookHook		NgHookName,
355    begemotNgHookStatus		INTEGER,
356    begemotNgHookPeerNodeId	NgNodeId,
357    begemotNgHookPeerHook	NgHookName,
358    begemotNgHookPeerType	NgTypeName
359}
360
361begemotNgHookNodeId OBJECT-TYPE
362    SYNTAX	NgNodeId
363    MAX-ACCESS	not-accessible
364    STATUS	current
365    DESCRIPTION
366	    "The 32bit node id of this node."
367    ::= { begemotNgHookEntry 1 }
368
369begemotNgHookHook OBJECT-TYPE
370    SYNTAX	NgHookName
371    MAX-ACCESS	read-only
372    STATUS	current
373    DESCRIPTION
374	    "Name of the hook."
375    ::= { begemotNgHookEntry 2 }
376
377begemotNgHookStatus OBJECT-TYPE
378    SYNTAX	INTEGER { valid(1), invalid(2) }
379    MAX-ACCESS	read-only
380    STATUS	current
381    DESCRIPTION
382	    "Indicates whether the hook exists or not."
383    ::= { begemotNgHookEntry 3 }
384
385begemotNgHookPeerNodeId OBJECT-TYPE
386    SYNTAX	NgNodeId
387    MAX-ACCESS	read-only
388    STATUS	current
389    DESCRIPTION
390	    "The 32bit node id of the peer node of this hook."
391    ::= { begemotNgHookEntry 4 }
392
393begemotNgHookPeerHook OBJECT-TYPE
394    SYNTAX	NgHookName
395    MAX-ACCESS	read-only
396    STATUS	current
397    DESCRIPTION
398	    "Name of the peer hook."
399    ::= { begemotNgHookEntry 5 }
400
401begemotNgHookPeerType OBJECT-TYPE
402    SYNTAX	NgTypeName
403    MAX-ACCESS	read-only
404    STATUS	current
405    DESCRIPTION
406	    "Name of the peer type."
407    ::= { begemotNgHookEntry 6 }
408
409END
410