xref: /openbsd-src/usr.bin/snmp/mib.c (revision 99fd087599a8791921855f21bd7e36130f39aadc)
1 /*	$OpenBSD: mib.c,v 1.1 2019/08/09 06:17:59 martijn Exp $	*/
2 
3 /*
4  * Copyright (c) 2012 Joel Knight <joel@openbsd.org>
5  * Copyright (c) 2007, 2008, 2012 Reyk Floeter <reyk@openbsd.org>
6  *
7  * Permission to use, copy, modify, and distribute this software for any
8  * purpose with or without fee is hereby granted, provided that the above
9  * copyright notice and this permission notice appear in all copies.
10  *
11  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18  */
19 
20 
21 #include <sys/tree.h>
22 #include <sys/types.h>
23 #include <sys/queue.h>
24 
25 #include "ber.h"
26 #include "mib.h"
27 #include "smi.h"
28 
29 static struct oid mib_tree[] = MIB_TREE;
30 static struct oid base_mib[] = {
31 	{ MIB(mib_2),			OID_MIB },
32 	{ MIB(sysDescr),		OID_RD },
33 	{ MIB(sysOID),			OID_RD },
34 	{ MIB(sysUpTime),		OID_RD },
35 	{ MIB(sysContact),		OID_RW },
36 	{ MIB(sysName),			OID_RW },
37 	{ MIB(sysLocation),		OID_RW },
38 	{ MIB(sysServices),		OID_RS },
39 	{ MIB(sysORLastChange),		OID_RD },
40 	{ MIB(sysORIndex),		OID_TRD },
41 	{ MIB(sysORID),			OID_TRD },
42 	{ MIB(sysORDescr),		OID_TRD },
43 	{ MIB(sysORUpTime),		OID_TRD },
44 	{ MIB(snmp),			OID_MIB },
45 	{ MIB(snmpInPkts),		OID_RD },
46 	{ MIB(snmpOutPkts),		OID_RD },
47 	{ MIB(snmpInBadVersions),	OID_RD },
48 	{ MIB(snmpInBadCommunityNames),	OID_RD },
49 	{ MIB(snmpInBadCommunityUses),	OID_RD },
50 	{ MIB(snmpInASNParseErrs),	OID_RD },
51 	{ MIB(snmpInTooBigs),		OID_RD },
52 	{ MIB(snmpInNoSuchNames),	OID_RD },
53 	{ MIB(snmpInBadValues),		OID_RD },
54 	{ MIB(snmpInReadOnlys),		OID_RD },
55 	{ MIB(snmpInGenErrs),		OID_RD },
56 	{ MIB(snmpInTotalReqVars),	OID_RD },
57 	{ MIB(snmpInTotalSetVars),	OID_RD },
58 	{ MIB(snmpInGetRequests),	OID_RD },
59 	{ MIB(snmpInGetNexts),		OID_RD },
60 	{ MIB(snmpInSetRequests),	OID_RD },
61 	{ MIB(snmpInGetResponses),	OID_RD },
62 	{ MIB(snmpInTraps),		OID_RD },
63 	{ MIB(snmpOutTooBigs),		OID_RD },
64 	{ MIB(snmpOutNoSuchNames),	OID_RD },
65 	{ MIB(snmpOutBadValues),	OID_RD },
66 	{ MIB(snmpOutGenErrs),		OID_RD },
67 	{ MIB(snmpOutGetRequests),	OID_RD },
68 	{ MIB(snmpOutGetNexts),		OID_RD },
69 	{ MIB(snmpOutSetRequests),	OID_RD },
70 	{ MIB(snmpOutGetResponses),	OID_RD },
71 	{ MIB(snmpOutTraps),		OID_RD },
72 	{ MIB(snmpEnableAuthenTraps),	OID_RW },
73 	{ MIB(snmpSilentDrops),		OID_RD },
74 	{ MIB(snmpProxyDrops),		OID_RD },
75 	{ MIBEND }
76 };
77 
78 static struct oid usm_mib[] = {
79 	{ MIB(snmpEngine),			OID_MIB },
80 	{ MIB(snmpEngineID),			OID_RD },
81 	{ MIB(snmpEngineBoots),			OID_RD },
82 	{ MIB(snmpEngineTime),			OID_RD },
83 	{ MIB(snmpEngineMaxMsgSize),		OID_RD },
84 	{ MIB(usmStats),			OID_MIB },
85 	{ MIB(usmStatsUnsupportedSecLevels),	OID_RD },
86 	{ MIB(usmStatsNotInTimeWindow),		OID_RD },
87 	{ MIB(usmStatsUnknownUserNames),	OID_RD },
88 	{ MIB(usmStatsUnknownEngineId),		OID_RD },
89 	{ MIB(usmStatsWrongDigests),		OID_RD },
90 	{ MIB(usmStatsDecryptionErrors),	OID_RD },
91 	{ MIBEND }
92 };
93 
94 static struct oid hr_mib[] = {
95 	{ MIB(host),				OID_MIB },
96 	{ MIB(hrSystemUptime),			OID_RD },
97 	{ MIB(hrSystemDate),			OID_RD },
98 	{ MIB(hrSystemProcesses),		OID_RD },
99 	{ MIB(hrSystemMaxProcesses),		OID_RD },
100 	{ MIB(hrMemorySize),			OID_RD },
101 	{ MIB(hrStorageIndex),			OID_TRD },
102 	{ MIB(hrStorageType),			OID_TRD },
103 	{ MIB(hrStorageDescr),			OID_TRD },
104 	{ MIB(hrStorageAllocationUnits),	OID_TRD },
105 	{ MIB(hrStorageSize),			OID_TRD },
106 	{ MIB(hrStorageUsed),			OID_TRD },
107 	{ MIB(hrStorageAllocationFailures),	OID_TRD },
108 	{ MIB(hrDeviceIndex),			OID_TRD },
109 	{ MIB(hrDeviceType),			OID_TRD },
110 	{ MIB(hrDeviceDescr),			OID_TRD },
111 	{ MIB(hrDeviceID),			OID_TRD },
112 	{ MIB(hrDeviceStatus),			OID_TRD },
113 	{ MIB(hrDeviceErrors),			OID_TRD },
114 	{ MIB(hrProcessorFrwID),		OID_TRD },
115 	{ MIB(hrProcessorLoad),			OID_TRD },
116 	{ MIB(hrSWRunIndex),			OID_TRD },
117 	{ MIB(hrSWRunName),			OID_TRD },
118 	{ MIB(hrSWRunID),			OID_TRD },
119 	{ MIB(hrSWRunPath),			OID_TRD },
120 	{ MIB(hrSWRunParameters),		OID_TRD },
121 	{ MIB(hrSWRunType),			OID_TRD },
122 	{ MIB(hrSWRunStatus),			OID_TRD },
123 	{ MIBEND }
124 };
125 
126 static struct oid if_mib[] = {
127 	{ MIB(ifMIB),			OID_MIB },
128 	{ MIB(ifName),			OID_TRD },
129 	{ MIB(ifInMulticastPkts),	OID_TRD },
130 	{ MIB(ifInBroadcastPkts),	OID_TRD },
131 	{ MIB(ifOutMulticastPkts),	OID_TRD },
132 	{ MIB(ifOutBroadcastPkts),	OID_TRD },
133 	{ MIB(ifHCInOctets),		OID_TRD },
134 	{ MIB(ifHCInUcastPkts),		OID_TRD },
135 	{ MIB(ifHCInMulticastPkts),	OID_TRD },
136 	{ MIB(ifHCInBroadcastPkts),	OID_TRD },
137 	{ MIB(ifHCOutOctets),		OID_TRD },
138 	{ MIB(ifHCOutUcastPkts),	OID_TRD },
139 	{ MIB(ifHCOutMulticastPkts),	OID_TRD },
140 	{ MIB(ifHCOutBroadcastPkts),	OID_TRD },
141 	{ MIB(ifLinkUpDownTrapEnable),	OID_TRD },
142 	{ MIB(ifHighSpeed),		OID_TRD },
143 	{ MIB(ifPromiscuousMode),	OID_TRD },
144 	{ MIB(ifConnectorPresent),	OID_TRD },
145 	{ MIB(ifAlias),			OID_TRD },
146 	{ MIB(ifCounterDiscontinuityTime), OID_TRD },
147 	{ MIB(ifRcvAddressStatus),	OID_TRD },
148 	{ MIB(ifRcvAddressType),	OID_TRD },
149 	{ MIB(ifStackLastChange),	OID_RD },
150 	{ MIB(ifNumber),		OID_RD },
151 	{ MIB(ifIndex),			OID_TRD },
152 	{ MIB(ifDescr),			OID_TRD },
153 	{ MIB(ifType),			OID_TRD },
154 	{ MIB(ifMtu),			OID_TRD },
155 	{ MIB(ifSpeed),			OID_TRD },
156 	{ MIB(ifPhysAddress),		OID_TRD },
157 	{ MIB(ifAdminStatus),		OID_TRD },
158 	{ MIB(ifOperStatus),		OID_TRD },
159 	{ MIB(ifLastChange),		OID_TRD },
160 	{ MIB(ifInOctets),		OID_TRD },
161 	{ MIB(ifInUcastPkts),		OID_TRD },
162 	{ MIB(ifInNUcastPkts),		OID_TRD },
163 	{ MIB(ifInDiscards),		OID_TRD },
164 	{ MIB(ifInErrors),		OID_TRD },
165 	{ MIB(ifInUnknownProtos),	OID_TRD },
166 	{ MIB(ifOutOctets),		OID_TRD },
167 	{ MIB(ifOutUcastPkts),		OID_TRD },
168 	{ MIB(ifOutNUcastPkts),		OID_TRD },
169 	{ MIB(ifOutDiscards),		OID_TRD },
170 	{ MIB(ifOutErrors),		OID_TRD },
171 	{ MIB(ifOutQLen),		OID_TRD },
172 	{ MIB(ifSpecific),		OID_TRD },
173 	{ MIBEND }
174 };
175 
176 static struct oid ip_mib[] = {
177 	{ MIB(ipMIB),			OID_MIB },
178 	{ MIB(ipForwarding),		OID_RD },
179 	{ MIB(ipDefaultTTL),		OID_RD },
180 	{ MIB(ipInReceives),		OID_RD },
181 	{ MIB(ipInHdrErrors),		OID_RD },
182 	{ MIB(ipInAddrErrors),		OID_RD },
183 	{ MIB(ipForwDatagrams),		OID_RD },
184 	{ MIB(ipInUnknownProtos),	OID_RD },
185 	{ MIB(ipInDelivers),		OID_RD },
186 	{ MIB(ipOutRequests),		OID_RD },
187 	{ MIB(ipOutDiscards),		OID_RD },
188 	{ MIB(ipOutNoRoutes),		OID_RD },
189 	{ MIB(ipReasmTimeout),		OID_RD },
190 	{ MIB(ipReasmReqds),		OID_RD },
191 	{ MIB(ipReasmOKs),		OID_RD },
192 	{ MIB(ipReasmFails),		OID_RD },
193 	{ MIB(ipFragOKs),		OID_RD },
194 	{ MIB(ipFragFails),		OID_RD },
195 	{ MIB(ipFragCreates),		OID_RD },
196 	{ MIB(ipAdEntAddr),		OID_TRD },
197 	{ MIB(ipAdEntIfIndex),		OID_TRD },
198 	{ MIB(ipAdEntNetMask),		OID_TRD },
199 	{ MIB(ipAdEntBcastAddr),	OID_TRD },
200 	{ MIB(ipAdEntReasmMaxSize),	OID_TRD },
201 	{ MIB(ipNetToMediaIfIndex),	OID_TRD },
202 	{ MIB(ipNetToMediaPhysAddress),	OID_TRD },
203 	{ MIB(ipNetToMediaNetAddress),	OID_TRD },
204 	{ MIB(ipNetToMediaType),	OID_TRD },
205 	{ MIBEND }
206 };
207 
208 static struct oid ipf_mib[] = {
209 	{ MIB(ipfMIB),			OID_MIB },
210 	{ MIB(ipfInetCidrRouteNumber),	OID_RD },
211 	{ MIB(ipfRouteEntIfIndex),	OID_TRD },
212 	{ MIB(ipfRouteEntType),		OID_TRD },
213 	{ MIB(ipfRouteEntProto),	OID_TRD },
214 	{ MIB(ipfRouteEntAge),		OID_TRD },
215 	{ MIB(ipfRouteEntNextHopAS),	OID_TRD },
216 	{ MIB(ipfRouteEntRouteMetric1),	OID_TRD },
217 	{ MIB(ipfRouteEntRouteMetric2),	OID_TRD },
218 	{ MIB(ipfRouteEntRouteMetric3),	OID_TRD },
219 	{ MIB(ipfRouteEntRouteMetric4),	OID_TRD },
220 	{ MIB(ipfRouteEntRouteMetric5),	OID_TRD },
221 	{ MIB(ipfRouteEntStatus),	OID_TRD },
222 	{ MIBEND }
223 };
224 
225 static struct oid bridge_mib[] = {
226 	{ MIB(dot1dBridge),		OID_MIB },
227 	{ MIB(dot1dBaseBridgeAddress) },
228 	{ MIB(dot1dBaseNumPorts),	OID_RD },
229 	{ MIB(dot1dBaseType),		OID_RD },
230 	{ MIB(dot1dBasePort),		OID_TRD },
231 	{ MIB(dot1dBasePortIfIndex),	OID_TRD },
232 	{ MIB(dot1dBasePortCircuit),	OID_TRD},
233 	{ MIB(dot1dBasePortDelayExceededDiscards), OID_TRD },
234 	{ MIB(dot1dBasePortMtuExceededDiscards), OID_TRD },
235 	{ MIBEND }
236 };
237 
238 static struct oid diskio_mib[] = {
239 	{ MIB(ucdDiskIOMIB),			OID_MIB },
240 	{ MIB(diskIOIndex),			OID_TRD },
241 	{ MIB(diskIODevice),			OID_TRD },
242 	{ MIB(diskIONRead),			OID_TRD },
243 	{ MIB(diskIONWritten),			OID_TRD },
244 	{ MIB(diskIOReads),			OID_TRD },
245 	{ MIB(diskIOWrites),			OID_TRD },
246 	{ MIB(diskIONReadX),			OID_TRD },
247 	{ MIB(diskIONWrittenX),			OID_TRD },
248 	{ MIBEND }
249 };
250 
251 static struct oid openbsd_mib[] = {
252 	{ MIB(pfMIBObjects),		OID_MIB },
253 	{ MIB(pfRunning),		OID_RD },
254 	{ MIB(pfRuntime),		OID_RD },
255 	{ MIB(pfDebug),			OID_RD },
256 	{ MIB(pfHostid),		OID_RD },
257 	{ MIB(pfCntMatch),		OID_RD },
258 	{ MIB(pfCntBadOffset),		OID_RD },
259 	{ MIB(pfCntFragment),		OID_RD },
260 	{ MIB(pfCntShort),		OID_RD },
261 	{ MIB(pfCntNormalize),		OID_RD },
262 	{ MIB(pfCntMemory),		OID_RD },
263 	{ MIB(pfCntTimestamp),		OID_RD },
264 	{ MIB(pfCntCongestion),		OID_RD },
265 	{ MIB(pfCntIpOptions),		OID_RD },
266 	{ MIB(pfCntProtoCksum),		OID_RD },
267 	{ MIB(pfCntStateMismatch),	OID_RD },
268 	{ MIB(pfCntStateInsert),	OID_RD },
269 	{ MIB(pfCntStateLimit),		OID_RD },
270 	{ MIB(pfCntSrcLimit),		OID_RD },
271 	{ MIB(pfCntSynproxy),		OID_RD },
272 	{ MIB(pfCntTranslate),		OID_RD },
273 	{ MIB(pfCntNoRoute),		OID_RD },
274 	{ MIB(pfStateCount),		OID_RD },
275 	{ MIB(pfStateSearches),		OID_RD },
276 	{ MIB(pfStateInserts),		OID_RD },
277 	{ MIB(pfStateRemovals),		OID_RD },
278 	{ MIB(pfLogIfName),		OID_RD },
279 	{ MIB(pfLogIfIpBytesIn),	OID_RD },
280 	{ MIB(pfLogIfIpBytesOut),	OID_RD },
281 	{ MIB(pfLogIfIpPktsInPass),	OID_RD },
282 	{ MIB(pfLogIfIpPktsInDrop),	OID_RD },
283 	{ MIB(pfLogIfIpPktsOutPass),	OID_RD },
284 	{ MIB(pfLogIfIpPktsOutDrop),	OID_RD },
285 	{ MIB(pfLogIfIp6BytesIn),	OID_RD },
286 	{ MIB(pfLogIfIp6BytesOut),	OID_RD },
287 	{ MIB(pfLogIfIp6PktsInPass),	OID_RD },
288 	{ MIB(pfLogIfIp6PktsInDrop),	OID_RD },
289 	{ MIB(pfLogIfIp6PktsOutPass),	OID_RD },
290 	{ MIB(pfLogIfIp6PktsOutDrop),	OID_RD },
291 	{ MIB(pfSrcTrackCount),		OID_RD },
292 	{ MIB(pfSrcTrackSearches),	OID_RD },
293 	{ MIB(pfSrcTrackInserts),	OID_RD },
294 	{ MIB(pfSrcTrackRemovals),	OID_RD },
295 	{ MIB(pfLimitStates),		OID_RD },
296 	{ MIB(pfLimitSourceNodes),	OID_RD },
297 	{ MIB(pfLimitFragments),	OID_RD },
298 	{ MIB(pfLimitMaxTables),	OID_RD },
299 	{ MIB(pfLimitMaxTableEntries),	OID_RD },
300 	{ MIB(pfTimeoutTcpFirst),	OID_RD },
301 	{ MIB(pfTimeoutTcpOpening),	OID_RD },
302 	{ MIB(pfTimeoutTcpEstablished),	OID_RD },
303 	{ MIB(pfTimeoutTcpClosing),	OID_RD },
304 	{ MIB(pfTimeoutTcpFinWait),	OID_RD },
305 	{ MIB(pfTimeoutTcpClosed),	OID_RD },
306 	{ MIB(pfTimeoutUdpFirst),	OID_RD },
307 	{ MIB(pfTimeoutUdpSingle),	OID_RD },
308 	{ MIB(pfTimeoutUdpMultiple),	OID_RD },
309 	{ MIB(pfTimeoutIcmpFirst),	OID_RD },
310 	{ MIB(pfTimeoutIcmpError),	OID_RD },
311 	{ MIB(pfTimeoutOtherFirst),	OID_RD },
312 	{ MIB(pfTimeoutOtherSingle),	OID_RD },
313 	{ MIB(pfTimeoutOtherMultiple),	OID_RD },
314 	{ MIB(pfTimeoutFragment),	OID_RD },
315 	{ MIB(pfTimeoutInterval),	OID_RD },
316 	{ MIB(pfTimeoutAdaptiveStart),	OID_RD },
317 	{ MIB(pfTimeoutAdaptiveEnd),	OID_RD },
318 	{ MIB(pfTimeoutSrcTrack),	OID_RD },
319 	{ MIB(pfIfNumber),		OID_RD },
320 	{ MIB(pfIfIndex),		OID_TRD },
321 	{ MIB(pfIfDescr),		OID_TRD },
322 	{ MIB(pfIfType),		OID_TRD },
323 	{ MIB(pfIfRefs),		OID_TRD },
324 	{ MIB(pfIfRules),		OID_TRD },
325 	{ MIB(pfIfIn4PassPkts),		OID_TRD },
326 	{ MIB(pfIfIn4PassBytes),	OID_TRD },
327 	{ MIB(pfIfIn4BlockPkts),	OID_TRD },
328 	{ MIB(pfIfIn4BlockBytes),	OID_TRD },
329 	{ MIB(pfIfOut4PassPkts),	OID_TRD },
330 	{ MIB(pfIfOut4PassBytes),	OID_TRD },
331 	{ MIB(pfIfOut4BlockPkts),	OID_TRD },
332 	{ MIB(pfIfOut4BlockBytes),	OID_TRD },
333 	{ MIB(pfIfIn6PassPkts),		OID_TRD },
334 	{ MIB(pfIfIn6PassBytes),	OID_TRD },
335 	{ MIB(pfIfIn6BlockPkts),	OID_TRD },
336 	{ MIB(pfIfIn6BlockBytes),	OID_TRD },
337 	{ MIB(pfIfOut6PassPkts),	OID_TRD },
338 	{ MIB(pfIfOut6PassBytes),	OID_TRD },
339 	{ MIB(pfIfOut6BlockPkts),	OID_TRD },
340 	{ MIB(pfIfOut6BlockBytes),	OID_TRD },
341 	{ MIB(pfTblNumber),		OID_RD },
342 	{ MIB(pfTblIndex),		OID_TRD },
343 	{ MIB(pfTblName),		OID_TRD },
344 	{ MIB(pfTblAddresses),		OID_TRD },
345 	{ MIB(pfTblAnchorRefs),		OID_TRD },
346 	{ MIB(pfTblRuleRefs),		OID_TRD },
347 	{ MIB(pfTblEvalsMatch),		OID_TRD },
348 	{ MIB(pfTblEvalsNoMatch),	OID_TRD },
349 	{ MIB(pfTblInPassPkts),		OID_TRD },
350 	{ MIB(pfTblInPassBytes),	OID_TRD },
351 	{ MIB(pfTblInBlockPkts),	OID_TRD },
352 	{ MIB(pfTblInBlockBytes),	OID_TRD },
353 	{ MIB(pfTblInXPassPkts),	OID_TRD },
354 	{ MIB(pfTblInXPassBytes),	OID_TRD },
355 	{ MIB(pfTblOutPassPkts),	OID_TRD },
356 	{ MIB(pfTblOutPassBytes),	OID_TRD },
357 	{ MIB(pfTblOutBlockPkts),	OID_TRD },
358 	{ MIB(pfTblOutBlockBytes),	OID_TRD },
359 	{ MIB(pfTblOutXPassPkts),	OID_TRD },
360 	{ MIB(pfTblOutXPassBytes),	OID_TRD },
361 	{ MIB(pfTblStatsCleared),	OID_TRD },
362 	{ MIB(pfTblInMatchPkts),	OID_TRD },
363 	{ MIB(pfTblInMatchBytes),	OID_TRD },
364 	{ MIB(pfTblOutMatchPkts),	OID_TRD },
365 	{ MIB(pfTblOutMatchBytes),	OID_TRD },
366 	{ MIB(pfTblAddrTblIndex),	OID_TRD },
367 	{ MIB(pfTblAddrNet),		OID_TRD },
368 	{ MIB(pfTblAddrMask),		OID_TRD },
369 	{ MIB(pfTblAddrCleared),	OID_TRD },
370 	{ MIB(pfTblAddrInBlockPkts),	OID_TRD },
371 	{ MIB(pfTblAddrInBlockBytes),	OID_TRD },
372 	{ MIB(pfTblAddrInPassPkts),	OID_TRD },
373 	{ MIB(pfTblAddrInPassBytes),	OID_TRD },
374 	{ MIB(pfTblAddrOutBlockPkts),	OID_TRD },
375 	{ MIB(pfTblAddrOutBlockBytes),	OID_TRD },
376 	{ MIB(pfTblAddrOutPassPkts),	OID_TRD },
377 	{ MIB(pfTblAddrOutPassBytes),	OID_TRD },
378 	{ MIB(pfTblAddrInMatchPkts),	OID_TRD },
379 	{ MIB(pfTblAddrInMatchBytes),	OID_TRD },
380 	{ MIB(pfTblAddrOutMatchPkts),	OID_TRD },
381 	{ MIB(pfTblAddrOutMatchBytes),	OID_TRD },
382 	{ MIB(pfLabelNumber),		OID_RD },
383 	{ MIB(pfLabelIndex),		OID_TRD },
384 	{ MIB(pfLabelName),		OID_TRD },
385 	{ MIB(pfLabelEvals),		OID_TRD },
386 	{ MIB(pfLabelPkts),		OID_TRD },
387 	{ MIB(pfLabelBytes),		OID_TRD },
388 	{ MIB(pfLabelInPkts),		OID_TRD },
389 	{ MIB(pfLabelInBytes),		OID_TRD },
390 	{ MIB(pfLabelOutPkts),		OID_TRD },
391 	{ MIB(pfLabelOutBytes),		OID_TRD },
392 	{ MIB(pfLabelTotalStates),	OID_TRD },
393 	{ MIB(pfsyncIpPktsRecv),	OID_RD },
394 	{ MIB(pfsyncIp6PktsRecv),	OID_RD },
395 	{ MIB(pfsyncPktDiscardsForBadInterface), OID_RD },
396 	{ MIB(pfsyncPktDiscardsForBadTtl), OID_RD },
397 	{ MIB(pfsyncPktShorterThanHeader), OID_RD },
398 	{ MIB(pfsyncPktDiscardsForBadVersion), OID_RD },
399 	{ MIB(pfsyncPktDiscardsForBadAction), OID_RD },
400 	{ MIB(pfsyncPktDiscardsForBadLength), OID_RD },
401 	{ MIB(pfsyncPktDiscardsForBadAuth), OID_RD },
402 	{ MIB(pfsyncPktDiscardsForStaleState), OID_RD },
403 	{ MIB(pfsyncPktDiscardsForBadValues), OID_RD },
404 	{ MIB(pfsyncPktDiscardsForBadState), OID_RD },
405 	{ MIB(pfsyncIpPktsSent),	OID_RD },
406 	{ MIB(pfsyncIp6PktsSent),	OID_RD },
407 	{ MIB(pfsyncNoMemory),		OID_RD },
408 	{ MIB(pfsyncOutputErrors),	OID_RD },
409 	{ MIB(sensorsMIBObjects),	OID_MIB },
410 	{ MIB(sensorNumber),		OID_RD },
411 	{ MIB(sensorIndex),		OID_TRD },
412 	{ MIB(sensorDescr),		OID_TRD },
413 	{ MIB(sensorType),		OID_TRD },
414 	{ MIB(sensorDevice),		OID_TRD },
415 	{ MIB(sensorValue),		OID_TRD },
416 	{ MIB(sensorUnits),		OID_TRD },
417 	{ MIB(sensorStatus),		OID_TRD },
418 	{ MIB(carpMIBObjects),		OID_MIB },
419 	{ MIB(carpAllow),		OID_RD },
420 	{ MIB(carpPreempt),		OID_RD },
421 	{ MIB(carpLog),			OID_RD },
422 	{ MIB(carpIpPktsRecv),		OID_RD },
423 	{ MIB(carpIp6PktsRecv),		OID_RD },
424 	{ MIB(carpPktDiscardsBadIface),	OID_RD },
425 	{ MIB(carpPktDiscardsBadTtl),	OID_RD },
426 	{ MIB(carpPktShorterThanHdr),	OID_RD },
427 	{ MIB(carpDiscardsBadCksum),	OID_RD },
428 	{ MIB(carpDiscardsBadVersion),	OID_RD },
429 	{ MIB(carpDiscardsTooShort),	OID_RD },
430 	{ MIB(carpDiscardsBadAuth),	OID_RD },
431 	{ MIB(carpDiscardsBadVhid),	OID_RD },
432 	{ MIB(carpDiscardsBadAddrList),	OID_RD },
433 	{ MIB(carpIpPktsSent),		OID_RD },
434 	{ MIB(carpIp6PktsSent),		OID_RD },
435 	{ MIB(carpNoMemory),		OID_RD },
436 	{ MIB(carpTransitionsToMaster),	OID_RD },
437 	{ MIB(carpIfNumber),		OID_RD },
438 	{ MIB(carpIfIndex),		OID_TRD },
439 	{ MIB(carpIfDescr),		OID_TRD },
440 	{ MIB(carpIfVhid),		OID_TRD },
441 	{ MIB(carpIfDev	),		OID_TRD },
442 	{ MIB(carpIfAdvbase),		OID_TRD },
443 	{ MIB(carpIfAdvskew),		OID_TRD },
444 	{ MIB(carpIfState),		OID_TRD },
445 	{ MIB(carpGroupName),		OID_TRD },
446 	{ MIB(carpGroupDemote),		OID_TRD },
447 	{ MIB(memMIBObjects),		OID_MIB },
448 	{ MIB(memMIBVersion),		OID_RD },
449 	{ MIB(memIfName),		OID_TRD },
450 	{ MIB(memIfLiveLocks),		OID_TRD },
451 	{ MIBEND }
452 };
453 
454 void
455 mib_init(void)
456 {
457 	/*
458 	 * MIB declarations (to register the OID names)
459 	 */
460 	smi_mibtree(mib_tree);
461 
462 	/*
463 	 * MIB definitions (the implementation)
464 	 */
465 
466 	/* SNMPv2-MIB */
467 	smi_mibtree(base_mib);
468 
469 	/* SNMP-USER-BASED-SM-MIB */
470 	smi_mibtree(usm_mib);
471 
472 	/* HOST-RESOURCES-MIB */
473 	smi_mibtree(hr_mib);
474 
475 	/* IF-MIB */
476 	smi_mibtree(if_mib);
477 
478 	/* IP-MIB */
479 	smi_mibtree(ip_mib);
480 
481 	/* IP-FORWARD-MIB */
482 	smi_mibtree(ipf_mib);
483 
484 	/* BRIDGE-MIB */
485 	smi_mibtree(bridge_mib);
486 
487 	/* UCD-DISKIO-MIB */
488 	smi_mibtree(diskio_mib);
489 
490 	/* OPENBSD-MIB */
491 	smi_mibtree(openbsd_mib);
492 }
493