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