1--
2-- Copyright (c) 2013 Mikolaj Golub <trociny@FreeBSD.org>
3-- All rights reserved.
4--
5-- Redistribution and use in source and binary forms, with or without
6-- modification, are permitted provided that the following conditions
7-- are met:
8-- 1. Redistributions of source code must retain the above copyright
9--    notice, this list of conditions and the following disclaimer.
10-- 2. Redistributions in binary form must reproduce the above copyright
11--    notice, this list of conditions and the following disclaimer in the
12--    documentation and/or other materials provided with the distribution.
13--
14-- THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
15-- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16-- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17-- ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
18-- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19-- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20-- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21-- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22-- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23-- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24-- SUCH DAMAGE.
25--
26
27BEGEMOT-HAST-MIB DEFINITIONS ::= BEGIN
28
29IMPORTS
30    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
31    Counter64, Integer32
32	FROM SNMPv2-SMI
33    TEXTUAL-CONVENTION, RowStatus
34	FROM SNMPv2-TC
35    InterfaceIndex, ifIndex
36	FROM IF-MIB
37    begemot
38	FROM BEGEMOT-MIB;
39
40begemotHast MODULE-IDENTITY
41    LAST-UPDATED "201304130000Z"
42    ORGANIZATION "FreeBSD"
43    CONTACT-INFO
44	    "		Mikolaj Golub
45
46	     Postal:	Bluhera 27v 11
47			61146 Kharkiv
48			Ukraine
49
50	     Fax:	N/A
51
52	     E-Mail:	trociny@FreeBSD.org"
53    DESCRIPTION
54	    "The Begemot MIB for managing HAST."
55    REVISION     "201304130000Z"
56    DESCRIPTION
57	    "Initial revision."
58    REVISION     "201307010000Z"
59    DESCRIPTION
60	    "Added hastResourceWorkerPid."
61    REVISION     "201312290000Z"
62    DESCRIPTION
63	    "Added hastResourceLocalQueue, hastResourceSendQueue,
64	    hastResourceRecvQueue, hastResourceDoneQueue,
65	    hastResourceIdleQueue."
66    ::= { begemot 220 }
67
68begemotHastObjects	OBJECT IDENTIFIER ::= { begemotHast 1 }
69
70-- ---------------------------------------------------------- --
71-- Configuration parameters
72-- ---------------------------------------------------------- --
73
74hastConfig	OBJECT IDENTIFIER ::= { begemotHastObjects 1 }
75
76hastConfigFile OBJECT-TYPE
77    SYNTAX	OCTET STRING
78    MAX-ACCESS	read-only
79    STATUS	current
80    DESCRIPTION
81	    "HAST configuration file location."
82    ::= { hastConfig 1 }
83
84-- ---------------------------------------------------------- --
85-- Resource Table
86-- ---------------------------------------------------------- --
87hastResourceTable OBJECT-TYPE
88    SYNTAX	SEQUENCE OF HastResourceEntry
89    MAX-ACCESS	not-accessible
90    STATUS	current
91    DESCRIPTION
92	"A table containing information about all HAST resources."
93    ::= { begemotHastObjects 2 }
94
95hastResourceEntry OBJECT-TYPE
96    SYNTAX	HastResourceEntry
97    MAX-ACCESS	not-accessible
98    STATUS	current
99    DESCRIPTION
100	"Table entry that describes one HAST resource."
101    INDEX	{ hastResourceIndex }
102    ::= { hastResourceTable 1 }
103
104HastResourceEntry ::= SEQUENCE {
105    hastResourceIndex			Integer32,
106    hastResourceName			OCTET STRING,
107    hastResourceRole			INTEGER,
108    hastResourceProvName		OCTET STRING,
109    hastResourceLocalPath		OCTET STRING,
110    hastResourceExtentSize		Integer32,
111    hastResourceKeepDirty		Integer32,
112    hastResourceRemoteAddr		OCTET STRING,
113    hastResourceSourceAddr		OCTET STRING,
114    hastResourceReplication		INTEGER,
115    hastResourceStatus			INTEGER,
116    hastResourceDirty			Counter64,
117    hastResourceReads			Counter64,
118    hastResourceWrites			Counter64,
119    hastResourceDeletes			Counter64,
120    hastResourceFlushes			Counter64,
121    hastResourceActivemapUpdates	Counter64,
122    hastResourceReadErrors		Counter64,
123    hastResourceWriteErrors		Counter64,
124    hastResourceDeleteErrors		Counter64,
125    hastResourceFlushErrors		Counter64,
126    hastResourceWorkerPid		INTEGER,
127    hastResourceLocalQueue		UNSIGNED32,
128    hastResourceSendQueue		UNSIGNED32,
129    hastResourceRecvQueue		UNSIGNED32,
130    hastResourceDoneQueue		UNSIGNED32,
131    hastResourceIdleQueue		UNSIGNED32
132}
133
134hastResourceIndex OBJECT-TYPE
135    SYNTAX	Integer32
136    MAX-ACCESS	read-only
137    STATUS	current
138    DESCRIPTION
139	"Resource index."
140    ::= { hastResourceEntry 1 }
141
142hastResourceName OBJECT-TYPE
143    SYNTAX	OCTET STRING
144    MAX-ACCESS	read-only
145    STATUS	current
146    DESCRIPTION
147	"Resource name."
148    ::= { hastResourceEntry 2 }
149
150hastResourceRole OBJECT-TYPE
151    SYNTAX	INTEGER { undef(0), init(1), primary(2), secondary(3) }
152    MAX-ACCESS	read-write
153    STATUS	current
154    DESCRIPTION
155	"Resource role."
156    ::= { hastResourceEntry 3 }
157
158hastResourceProvName OBJECT-TYPE
159    SYNTAX	OCTET STRING
160    MAX-ACCESS	read-only
161    STATUS	current
162    DESCRIPTION
163	"Resource GEOM provider name that appears as /dev/hast/<name>."
164    ::= { hastResourceEntry 4 }
165
166hastResourceLocalPath OBJECT-TYPE
167    SYNTAX	OCTET STRING
168    MAX-ACCESS	read-only
169    STATUS	current
170    DESCRIPTION
171	"Path to the local component which is used as a backend
172	provider for the resource."
173    ::= { hastResourceEntry 5 }
174
175hastResourceExtentSize OBJECT-TYPE
176    SYNTAX	Integer32
177    MAX-ACCESS	read-only
178    STATUS	current
179    DESCRIPTION
180	"Size of an extent.  Extent is a block which is
181	used for synchronization.  hastd(8) maintains a
182	map of dirty extents and extent is the smallest
183	region that can be marked as dirty.  If any part
184	of an extent is modified, entire extent will be
185	synchronized when nodes connect."
186    ::= { hastResourceEntry 6 }
187
188hastResourceKeepDirty OBJECT-TYPE
189    SYNTAX	Integer32
190    MAX-ACCESS	read-only
191    STATUS	current
192    DESCRIPTION
193	"Maximum number of dirty extents to keep dirty all
194	the time.  Most recently used extents are kept
195	dirty to reduce number of metadata updates."
196    ::= { hastResourceEntry 7 }
197
198hastResourceRemoteAddr OBJECT-TYPE
199    SYNTAX	OCTET STRING
200    MAX-ACCESS	read-only
201    STATUS	current
202    DESCRIPTION
203	"Address of the remote hastd(8) daemon for the resource."
204    ::= { hastResourceEntry 8 }
205
206hastResourceSourceAddr OBJECT-TYPE
207    SYNTAX	OCTET STRING
208    MAX-ACCESS	read-only
209    STATUS	current
210    DESCRIPTION
211	"Local address the resource is bound to."
212    ::= { hastResourceEntry 9 }
213
214hastResourceReplication OBJECT-TYPE
215    SYNTAX	INTEGER { fullsync(0), memsync(1), async(2) }
216    MAX-ACCESS	read-only
217    STATUS	current
218    DESCRIPTION
219	"Resource replication mode."
220    ::= { hastResourceEntry 10 }
221
222hastResourceStatus OBJECT-TYPE
223    SYNTAX	INTEGER { complete(0), degraded(1) }
224    MAX-ACCESS	read-only
225    STATUS	current
226    DESCRIPTION
227	"Resource replication status."
228    ::= { hastResourceEntry 11 }
229
230hastResourceDirty OBJECT-TYPE
231    SYNTAX	Counter64
232    MAX-ACCESS	read-only
233    STATUS	current
234    DESCRIPTION
235	"Current number of dirty extents for the resource."
236    ::= { hastResourceEntry 12 }
237
238hastResourceReads OBJECT-TYPE
239    SYNTAX	Counter64
240    MAX-ACCESS	read-only
241    STATUS	current
242    DESCRIPTION
243	"Count of resource local read operations."
244    ::= { hastResourceEntry 13 }
245
246hastResourceWrites OBJECT-TYPE
247    SYNTAX	Counter64
248    MAX-ACCESS	read-only
249    STATUS	current
250    DESCRIPTION
251	"Count of resource local write operations."
252    ::= { hastResourceEntry 14 }
253
254hastResourceDeletes OBJECT-TYPE
255    SYNTAX	Counter64
256    MAX-ACCESS	read-only
257    STATUS	current
258    DESCRIPTION
259	"Count of resource local delete operations."
260    ::= { hastResourceEntry 15 }
261
262hastResourceFlushes OBJECT-TYPE
263    SYNTAX	Counter64
264    MAX-ACCESS	read-only
265    STATUS	current
266    DESCRIPTION
267	"Count of resource local flush operations."
268    ::= { hastResourceEntry 16 }
269
270hastResourceActivemapUpdates OBJECT-TYPE
271    SYNTAX	Counter64
272    MAX-ACCESS	read-only
273    STATUS	current
274    DESCRIPTION
275	"Count of resource local activemap updates."
276    ::= { hastResourceEntry 17 }
277
278hastResourceReadErrors OBJECT-TYPE
279    SYNTAX	Counter64
280    MAX-ACCESS	read-only
281    STATUS	current
282    DESCRIPTION
283	"Count of resource local read operations that failed."
284    ::= { hastResourceEntry 18 }
285
286hastResourceWriteErrors OBJECT-TYPE
287    SYNTAX	Counter64
288    MAX-ACCESS	read-only
289    STATUS	current
290    DESCRIPTION
291	"Count of resource local write operations that failed."
292    ::= { hastResourceEntry 19 }
293
294hastResourceDeleteErrors OBJECT-TYPE
295    SYNTAX	Counter64
296    MAX-ACCESS	read-only
297    STATUS	current
298    DESCRIPTION
299	"Count of resource local delete operations that failed."
300    ::= { hastResourceEntry 20 }
301
302hastResourceFlushErrors OBJECT-TYPE
303    SYNTAX	Counter64
304    MAX-ACCESS	read-only
305    STATUS	current
306    DESCRIPTION
307	"Count of resource local flush operations that failed."
308    ::= { hastResourceEntry 21 }
309
310hastResourceWorkerPid OBJECT-TYPE
311    SYNTAX	INTEGER
312    MAX-ACCESS	read-only
313    STATUS	current
314    DESCRIPTION
315	"Worker process ID."
316    ::= { hastResourceEntry 22 }
317
318hastResourceLocalQueue OBJECT-TYPE
319    SYNTAX	UNSIGNED32
320    MAX-ACCESS	read-only
321    STATUS	current
322    DESCRIPTION
323	"Number of outstanding I/O requests to the local component."
324    ::= { hastResourceEntry 23 }
325
326hastResourceSendQueue OBJECT-TYPE
327    SYNTAX	UNSIGNED32
328    MAX-ACCESS	read-only
329    STATUS	current
330    DESCRIPTION
331	"Number of outstanding I/O requests to send to the remote
332	component."
333    ::= { hastResourceEntry 24 }
334
335hastResourceRecvQueue OBJECT-TYPE
336    SYNTAX	UNSIGNED32
337    MAX-ACCESS	read-only
338    STATUS	current
339    DESCRIPTION
340	"Number of outstanding I/O requests waiting for response
341	from the remote component."
342    ::= { hastResourceEntry 25 }
343
344hastResourceDoneQueue OBJECT-TYPE
345    SYNTAX	UNSIGNED32
346    MAX-ACCESS	read-only
347    STATUS	current
348    DESCRIPTION
349	"Number of processed I/O requests to return to the kernel."
350    ::= { hastResourceEntry 26 }
351
352hastResourceIdleQueue OBJECT-TYPE
353    SYNTAX	UNSIGNED32
354    MAX-ACCESS	read-only
355    STATUS	current
356    DESCRIPTION
357	"Number of request objects in the free bucket."
358    ::= { hastResourceEntry 27 }
359
360END
361