telemetry-snmp 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (131) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/rspec.yml +44 -0
  3. data/.github/workflows/rubocop.yml +28 -0
  4. data/.github/workflows/sourcehawk-scan.yml +20 -0
  5. data/.gitignore +14 -0
  6. data/.rspec +4 -0
  7. data/.rubocop.yml +26 -0
  8. data/CHANGELOG.md +4 -0
  9. data/CODE_OF_CONDUCT.md +75 -0
  10. data/CONTRIBUTING.md +54 -0
  11. data/Gemfile +10 -0
  12. data/INDIVIDUAL_CONTRIBUTOR_LICENSE.md +30 -0
  13. data/LICENSE +201 -0
  14. data/NOTICE.txt +9 -0
  15. data/README.md +54 -0
  16. data/attribution.txt +1 -0
  17. data/config.ru +15 -0
  18. data/exe/snmp_collector +55 -0
  19. data/lib/telemetry/snmp.rb +23 -0
  20. data/lib/telemetry/snmp/api.rb +55 -0
  21. data/lib/telemetry/snmp/auth.rb +54 -0
  22. data/lib/telemetry/snmp/auth/defaults.rb +41 -0
  23. data/lib/telemetry/snmp/client.rb +104 -0
  24. data/lib/telemetry/snmp/controllers/device_creds.rb +105 -0
  25. data/lib/telemetry/snmp/controllers/devices.rb +94 -0
  26. data/lib/telemetry/snmp/controllers/oid_groups.rb +71 -0
  27. data/lib/telemetry/snmp/controllers/oids.rb +80 -0
  28. data/lib/telemetry/snmp/controllers/users.rb +81 -0
  29. data/lib/telemetry/snmp/controllers/walks.rb +89 -0
  30. data/lib/telemetry/snmp/data.rb +69 -0
  31. data/lib/telemetry/snmp/data/default_opts.rb +73 -0
  32. data/lib/telemetry/snmp/data/migrations/001_device_creds.rb +19 -0
  33. data/lib/telemetry/snmp/data/migrations/002_create_devices_table.rb +31 -0
  34. data/lib/telemetry/snmp/data/migrations/003_create_oids_tables.rb +16 -0
  35. data/lib/telemetry/snmp/data/migrations/004_create_oid_groups.rb +15 -0
  36. data/lib/telemetry/snmp/data/migrations/005_create_oids_oid_groups.rb +17 -0
  37. data/lib/telemetry/snmp/data/migrations/006_device_to_oid_group.rb +15 -0
  38. data/lib/telemetry/snmp/data/migrations/007_create_users.rb +20 -0
  39. data/lib/telemetry/snmp/data/migrations/008_create_walks_table.rb +14 -0
  40. data/lib/telemetry/snmp/data/migrations/009_create_tag_name_column.rb +7 -0
  41. data/lib/telemetry/snmp/data/migrations/010_create_user_audit_table.rb +18 -0
  42. data/lib/telemetry/snmp/data/models/device.rb +11 -0
  43. data/lib/telemetry/snmp/data/models/device_cred.rb +11 -0
  44. data/lib/telemetry/snmp/data/models/oid.rb +10 -0
  45. data/lib/telemetry/snmp/data/models/oid_group.rb +10 -0
  46. data/lib/telemetry/snmp/data/models/oid_oid_groups.rb +10 -0
  47. data/lib/telemetry/snmp/data/models/oid_walk.rb +10 -0
  48. data/lib/telemetry/snmp/data/models/user.rb +10 -0
  49. data/lib/telemetry/snmp/data/models/user_audit_log.rb +19 -0
  50. data/lib/telemetry/snmp/mibs/AGENTX-MIB.txt +527 -0
  51. data/lib/telemetry/snmp/mibs/AIRPORT-BASESTATION-3-MIB.txt +461 -0
  52. data/lib/telemetry/snmp/mibs/BRIDGE-MIB.txt +1472 -0
  53. data/lib/telemetry/snmp/mibs/DISMAN-EVENT-MIB.txt +1882 -0
  54. data/lib/telemetry/snmp/mibs/DISMAN-SCHEDULE-MIB.txt +699 -0
  55. data/lib/telemetry/snmp/mibs/DISMAN-SCRIPT-MIB.txt +1764 -0
  56. data/lib/telemetry/snmp/mibs/EtherLike-MIB.txt +1862 -0
  57. data/lib/telemetry/snmp/mibs/HCNUM-TC.txt +118 -0
  58. data/lib/telemetry/snmp/mibs/HOST-RESOURCES-MIB.txt +1540 -0
  59. data/lib/telemetry/snmp/mibs/HOST-RESOURCES-TYPES.txt +389 -0
  60. data/lib/telemetry/snmp/mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt +123 -0
  61. data/lib/telemetry/snmp/mibs/IANA-LANGUAGE-MIB.txt +123 -0
  62. data/lib/telemetry/snmp/mibs/IANA-RTPROTO-MIB.txt +91 -0
  63. data/lib/telemetry/snmp/mibs/IANAifType-MIB.txt +619 -0
  64. data/lib/telemetry/snmp/mibs/IF-INVERTED-STACK-MIB.txt +149 -0
  65. data/lib/telemetry/snmp/mibs/IF-MIB.txt +1814 -0
  66. data/lib/telemetry/snmp/mibs/INET-ADDRESS-MIB.txt +402 -0
  67. data/lib/telemetry/snmp/mibs/IP-FORWARD-MIB.txt +1277 -0
  68. data/lib/telemetry/snmp/mibs/IP-MIB.txt +4993 -0
  69. data/lib/telemetry/snmp/mibs/IPV6-FLOW-LABEL-MIB.txt +58 -0
  70. data/lib/telemetry/snmp/mibs/IPV6-ICMP-MIB.txt +529 -0
  71. data/lib/telemetry/snmp/mibs/IPV6-MIB.txt +1443 -0
  72. data/lib/telemetry/snmp/mibs/IPV6-TC.txt +67 -0
  73. data/lib/telemetry/snmp/mibs/IPV6-TCP-MIB.txt +211 -0
  74. data/lib/telemetry/snmp/mibs/IPV6-UDP-MIB.txt +141 -0
  75. data/lib/telemetry/snmp/mibs/NET-SNMP-AGENT-MIB.txt +554 -0
  76. data/lib/telemetry/snmp/mibs/NET-SNMP-EXAMPLES-MIB.txt +285 -0
  77. data/lib/telemetry/snmp/mibs/NET-SNMP-EXTEND-MIB.txt +325 -0
  78. data/lib/telemetry/snmp/mibs/NET-SNMP-MIB.txt +67 -0
  79. data/lib/telemetry/snmp/mibs/NET-SNMP-PASS-MIB.txt +124 -0
  80. data/lib/telemetry/snmp/mibs/NET-SNMP-TC.txt +128 -0
  81. data/lib/telemetry/snmp/mibs/NET-SNMP-VACM-MIB.txt +154 -0
  82. data/lib/telemetry/snmp/mibs/NOTIFICATION-LOG-MIB.txt +753 -0
  83. data/lib/telemetry/snmp/mibs/PAN-COMMON-MIB.md5 +1 -0
  84. data/lib/telemetry/snmp/mibs/PAN-COMMON-MIB.my +2293 -0
  85. data/lib/telemetry/snmp/mibs/PAN-ENTITY-EXT-MIB.md5 +1 -0
  86. data/lib/telemetry/snmp/mibs/PAN-ENTITY-EXT-MIB.my +293 -0
  87. data/lib/telemetry/snmp/mibs/PAN-GLOBAL-REG-MIB.md5 +1 -0
  88. data/lib/telemetry/snmp/mibs/PAN-GLOBAL-REG-MIB.my +84 -0
  89. data/lib/telemetry/snmp/mibs/PAN-GLOBAL-TC-MIB.md5 +1 -0
  90. data/lib/telemetry/snmp/mibs/PAN-GLOBAL-TC-MIB.my +68 -0
  91. data/lib/telemetry/snmp/mibs/PAN-LC-MIB.md5 +1 -0
  92. data/lib/telemetry/snmp/mibs/PAN-LC-MIB.my +204 -0
  93. data/lib/telemetry/snmp/mibs/PAN-PRODUCT-MIB.md5 +1 -0
  94. data/lib/telemetry/snmp/mibs/PAN-PRODUCT-MIB.my +305 -0
  95. data/lib/telemetry/snmp/mibs/PAN-TRAPS.md5 +1 -0
  96. data/lib/telemetry/snmp/mibs/PAN-TRAPS.my +7809 -0
  97. data/lib/telemetry/snmp/mibs/RFC-1215.txt +38 -0
  98. data/lib/telemetry/snmp/mibs/RFC1155-SMI.txt +119 -0
  99. data/lib/telemetry/snmp/mibs/RFC1213-MIB.txt +2613 -0
  100. data/lib/telemetry/snmp/mibs/RMON-MIB.txt +3980 -0
  101. data/lib/telemetry/snmp/mibs/SCTP-MIB.txt +1342 -0
  102. data/lib/telemetry/snmp/mibs/SMUX-MIB.txt +160 -0
  103. data/lib/telemetry/snmp/mibs/SNMP-COMMUNITY-MIB.txt +429 -0
  104. data/lib/telemetry/snmp/mibs/SNMP-FRAMEWORK-MIB.txt +526 -0
  105. data/lib/telemetry/snmp/mibs/SNMP-MPD-MIB.txt +145 -0
  106. data/lib/telemetry/snmp/mibs/SNMP-NOTIFICATION-MIB.txt +589 -0
  107. data/lib/telemetry/snmp/mibs/SNMP-PROXY-MIB.txt +294 -0
  108. data/lib/telemetry/snmp/mibs/SNMP-TARGET-MIB.txt +660 -0
  109. data/lib/telemetry/snmp/mibs/SNMP-USER-BASED-SM-MIB.txt +912 -0
  110. data/lib/telemetry/snmp/mibs/SNMP-USM-AES-MIB.txt +62 -0
  111. data/lib/telemetry/snmp/mibs/SNMP-USM-DH-OBJECTS-MIB.txt +532 -0
  112. data/lib/telemetry/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.txt +830 -0
  113. data/lib/telemetry/snmp/mibs/SNMPv2-CONF.txt +322 -0
  114. data/lib/telemetry/snmp/mibs/SNMPv2-MIB.txt +854 -0
  115. data/lib/telemetry/snmp/mibs/SNMPv2-SMI.txt +344 -0
  116. data/lib/telemetry/snmp/mibs/SNMPv2-TC.txt +772 -0
  117. data/lib/telemetry/snmp/mibs/SNMPv2-TM.txt +176 -0
  118. data/lib/telemetry/snmp/mibs/TCP-MIB.txt +785 -0
  119. data/lib/telemetry/snmp/mibs/TRANSPORT-ADDRESS-MIB.txt +421 -0
  120. data/lib/telemetry/snmp/mibs/TUNNEL-MIB.txt +738 -0
  121. data/lib/telemetry/snmp/mibs/UCD-DEMO-MIB.txt +74 -0
  122. data/lib/telemetry/snmp/mibs/UCD-DISKIO-MIB.txt +171 -0
  123. data/lib/telemetry/snmp/mibs/UCD-DLMOD-MIB.txt +124 -0
  124. data/lib/telemetry/snmp/mibs/UCD-IPFWACC-MIB.txt +327 -0
  125. data/lib/telemetry/snmp/mibs/UCD-SNMP-MIB.txt +1712 -0
  126. data/lib/telemetry/snmp/mibs/UDP-MIB.txt +549 -0
  127. data/lib/telemetry/snmp/publisher.rb +130 -0
  128. data/lib/telemetry/snmp/version.rb +7 -0
  129. data/sourcehawk.yml +4 -0
  130. data/telemetry-snmp.gemspec +48 -0
  131. metadata +456 -0
@@ -0,0 +1,830 @@
1
+ SNMP-VIEW-BASED-ACM-MIB DEFINITIONS ::= BEGIN
2
+
3
+ IMPORTS
4
+ MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
5
+ MODULE-IDENTITY, OBJECT-TYPE,
6
+ snmpModules FROM SNMPv2-SMI
7
+ TestAndIncr,
8
+ RowStatus, StorageType FROM SNMPv2-TC
9
+ SnmpAdminString,
10
+ SnmpSecurityLevel,
11
+ SnmpSecurityModel FROM SNMP-FRAMEWORK-MIB;
12
+
13
+ snmpVacmMIB MODULE-IDENTITY
14
+ LAST-UPDATED "200210160000Z" -- 16 Oct 2002, midnight
15
+ ORGANIZATION "SNMPv3 Working Group"
16
+ CONTACT-INFO "WG-email: snmpv3@lists.tislabs.com
17
+ Subscribe: majordomo@lists.tislabs.com
18
+ In message body: subscribe snmpv3
19
+
20
+ Co-Chair: Russ Mundy
21
+ Network Associates Laboratories
22
+ postal: 15204 Omega Drive, Suite 300
23
+ Rockville, MD 20850-4601
24
+ USA
25
+ email: mundy@tislabs.com
26
+ phone: +1 301-947-7107
27
+
28
+ Co-Chair: David Harrington
29
+ Enterasys Networks
30
+ Postal: 35 Industrial Way
31
+ P. O. Box 5004
32
+ Rochester, New Hampshire 03866-5005
33
+ USA
34
+ EMail: dbh@enterasys.com
35
+ Phone: +1 603-337-2614
36
+
37
+ Co-editor: Bert Wijnen
38
+ Lucent Technologies
39
+ postal: Schagen 33
40
+ 3461 GL Linschoten
41
+ Netherlands
42
+ email: bwijnen@lucent.com
43
+ phone: +31-348-480-685
44
+
45
+ Co-editor: Randy Presuhn
46
+ BMC Software, Inc.
47
+
48
+ postal: 2141 North First Street
49
+ San Jose, CA 95131
50
+ USA
51
+ email: randy_presuhn@bmc.com
52
+ phone: +1 408-546-1006
53
+
54
+ Co-editor: Keith McCloghrie
55
+ Cisco Systems, Inc.
56
+ postal: 170 West Tasman Drive
57
+ San Jose, CA 95134-1706
58
+ USA
59
+ email: kzm@cisco.com
60
+ phone: +1-408-526-5260
61
+ "
62
+ DESCRIPTION "The management information definitions for the
63
+ View-based Access Control Model for SNMP.
64
+
65
+ Copyright (C) The Internet Society (2002). This
66
+ version of this MIB module is part of RFC 3415;
67
+ see the RFC itself for full legal notices.
68
+ "
69
+ -- Revision history
70
+
71
+ REVISION "200210160000Z" -- 16 Oct 2002, midnight
72
+ DESCRIPTION "Clarifications, published as RFC3415"
73
+
74
+ REVISION "199901200000Z" -- 20 Jan 1999, midnight
75
+ DESCRIPTION "Clarifications, published as RFC2575"
76
+
77
+ REVISION "199711200000Z" -- 20 Nov 1997, midnight
78
+ DESCRIPTION "Initial version, published as RFC2275"
79
+ ::= { snmpModules 16 }
80
+
81
+ -- Administrative assignments ****************************************
82
+
83
+ vacmMIBObjects OBJECT IDENTIFIER ::= { snmpVacmMIB 1 }
84
+ vacmMIBConformance OBJECT IDENTIFIER ::= { snmpVacmMIB 2 }
85
+
86
+ -- Information about Local Contexts **********************************
87
+
88
+ vacmContextTable OBJECT-TYPE
89
+ SYNTAX SEQUENCE OF VacmContextEntry
90
+ MAX-ACCESS not-accessible
91
+ STATUS current
92
+ DESCRIPTION "The table of locally available contexts.
93
+
94
+ This table provides information to SNMP Command
95
+
96
+ Generator applications so that they can properly
97
+ configure the vacmAccessTable to control access to
98
+ all contexts at the SNMP entity.
99
+
100
+ This table may change dynamically if the SNMP entity
101
+ allows that contexts are added/deleted dynamically
102
+ (for instance when its configuration changes). Such
103
+ changes would happen only if the management
104
+ instrumentation at that SNMP entity recognizes more
105
+ (or fewer) contexts.
106
+
107
+ The presence of entries in this table and of entries
108
+ in the vacmAccessTable are independent. That is, a
109
+ context identified by an entry in this table is not
110
+ necessarily referenced by any entries in the
111
+ vacmAccessTable; and the context(s) referenced by an
112
+ entry in the vacmAccessTable does not necessarily
113
+ currently exist and thus need not be identified by an
114
+ entry in this table.
115
+
116
+ This table must be made accessible via the default
117
+ context so that Command Responder applications have
118
+ a standard way of retrieving the information.
119
+
120
+ This table is read-only. It cannot be configured via
121
+ SNMP.
122
+ "
123
+ ::= { vacmMIBObjects 1 }
124
+
125
+ vacmContextEntry OBJECT-TYPE
126
+ SYNTAX VacmContextEntry
127
+ MAX-ACCESS not-accessible
128
+ STATUS current
129
+ DESCRIPTION "Information about a particular context."
130
+ INDEX {
131
+ vacmContextName
132
+ }
133
+ ::= { vacmContextTable 1 }
134
+
135
+ VacmContextEntry ::= SEQUENCE
136
+ {
137
+ vacmContextName SnmpAdminString
138
+ }
139
+
140
+ vacmContextName OBJECT-TYPE
141
+ SYNTAX SnmpAdminString (SIZE(0..32))
142
+ MAX-ACCESS read-only
143
+ STATUS current
144
+ DESCRIPTION "A human readable name identifying a particular
145
+ context at a particular SNMP entity.
146
+
147
+ The empty contextName (zero length) represents the
148
+ default context.
149
+ "
150
+ ::= { vacmContextEntry 1 }
151
+
152
+ -- Information about Groups ******************************************
153
+
154
+ vacmSecurityToGroupTable OBJECT-TYPE
155
+ SYNTAX SEQUENCE OF VacmSecurityToGroupEntry
156
+ MAX-ACCESS not-accessible
157
+ STATUS current
158
+ DESCRIPTION "This table maps a combination of securityModel and
159
+ securityName into a groupName which is used to define
160
+ an access control policy for a group of principals.
161
+ "
162
+ ::= { vacmMIBObjects 2 }
163
+
164
+ vacmSecurityToGroupEntry OBJECT-TYPE
165
+ SYNTAX VacmSecurityToGroupEntry
166
+ MAX-ACCESS not-accessible
167
+ STATUS current
168
+ DESCRIPTION "An entry in this table maps the combination of a
169
+ securityModel and securityName into a groupName.
170
+ "
171
+ INDEX {
172
+ vacmSecurityModel,
173
+ vacmSecurityName
174
+ }
175
+ ::= { vacmSecurityToGroupTable 1 }
176
+
177
+ VacmSecurityToGroupEntry ::= SEQUENCE
178
+ {
179
+ vacmSecurityModel SnmpSecurityModel,
180
+ vacmSecurityName SnmpAdminString,
181
+ vacmGroupName SnmpAdminString,
182
+ vacmSecurityToGroupStorageType StorageType,
183
+ vacmSecurityToGroupStatus RowStatus
184
+ }
185
+
186
+ vacmSecurityModel OBJECT-TYPE
187
+ SYNTAX SnmpSecurityModel(1..2147483647)
188
+ MAX-ACCESS not-accessible
189
+ STATUS current
190
+ DESCRIPTION "The Security Model, by which the vacmSecurityName
191
+ referenced by this entry is provided.
192
+
193
+ Note, this object may not take the 'any' (0) value.
194
+ "
195
+ ::= { vacmSecurityToGroupEntry 1 }
196
+
197
+ vacmSecurityName OBJECT-TYPE
198
+ SYNTAX SnmpAdminString (SIZE(1..32))
199
+ MAX-ACCESS not-accessible
200
+ STATUS current
201
+ DESCRIPTION "The securityName for the principal, represented in a
202
+ Security Model independent format, which is mapped by
203
+ this entry to a groupName.
204
+ "
205
+ ::= { vacmSecurityToGroupEntry 2 }
206
+
207
+ vacmGroupName OBJECT-TYPE
208
+ SYNTAX SnmpAdminString (SIZE(1..32))
209
+ MAX-ACCESS read-create
210
+ STATUS current
211
+ DESCRIPTION "The name of the group to which this entry (e.g., the
212
+ combination of securityModel and securityName)
213
+ belongs.
214
+
215
+ This groupName is used as index into the
216
+ vacmAccessTable to select an access control policy.
217
+ However, a value in this table does not imply that an
218
+ instance with the value exists in table vacmAccesTable.
219
+ "
220
+ ::= { vacmSecurityToGroupEntry 3 }
221
+
222
+ vacmSecurityToGroupStorageType OBJECT-TYPE
223
+ SYNTAX StorageType
224
+ MAX-ACCESS read-create
225
+ STATUS current
226
+ DESCRIPTION "The storage type for this conceptual row.
227
+ Conceptual rows having the value 'permanent' need not
228
+ allow write-access to any columnar objects in the row.
229
+ "
230
+ DEFVAL { nonVolatile }
231
+ ::= { vacmSecurityToGroupEntry 4 }
232
+
233
+ vacmSecurityToGroupStatus OBJECT-TYPE
234
+ SYNTAX RowStatus
235
+ MAX-ACCESS read-create
236
+ STATUS current
237
+ DESCRIPTION "The status of this conceptual row.
238
+
239
+ Until instances of all corresponding columns are
240
+ appropriately configured, the value of the
241
+
242
+ corresponding instance of the vacmSecurityToGroupStatus
243
+ column is 'notReady'.
244
+
245
+ In particular, a newly created row cannot be made
246
+ active until a value has been set for vacmGroupName.
247
+
248
+ The RowStatus TC [RFC2579] requires that this
249
+ DESCRIPTION clause states under which circumstances
250
+ other objects in this row can be modified:
251
+
252
+ The value of this object has no effect on whether
253
+ other objects in this conceptual row can be modified.
254
+ "
255
+ ::= { vacmSecurityToGroupEntry 5 }
256
+
257
+ -- Information about Access Rights ***********************************
258
+
259
+ vacmAccessTable OBJECT-TYPE
260
+ SYNTAX SEQUENCE OF VacmAccessEntry
261
+ MAX-ACCESS not-accessible
262
+ STATUS current
263
+ DESCRIPTION "The table of access rights for groups.
264
+
265
+ Each entry is indexed by a groupName, a contextPrefix,
266
+ a securityModel and a securityLevel. To determine
267
+ whether access is allowed, one entry from this table
268
+ needs to be selected and the proper viewName from that
269
+ entry must be used for access control checking.
270
+
271
+ To select the proper entry, follow these steps:
272
+
273
+ 1) the set of possible matches is formed by the
274
+ intersection of the following sets of entries:
275
+
276
+ the set of entries with identical vacmGroupName
277
+ the union of these two sets:
278
+ - the set with identical vacmAccessContextPrefix
279
+ - the set of entries with vacmAccessContextMatch
280
+ value of 'prefix' and matching
281
+ vacmAccessContextPrefix
282
+ intersected with the union of these two sets:
283
+ - the set of entries with identical
284
+ vacmSecurityModel
285
+ - the set of entries with vacmSecurityModel
286
+ value of 'any'
287
+ intersected with the set of entries with
288
+ vacmAccessSecurityLevel value less than or equal
289
+ to the requested securityLevel
290
+
291
+ 2) if this set has only one member, we're done
292
+ otherwise, it comes down to deciding how to weight
293
+ the preferences between ContextPrefixes,
294
+ SecurityModels, and SecurityLevels as follows:
295
+ a) if the subset of entries with securityModel
296
+ matching the securityModel in the message is
297
+ not empty, then discard the rest.
298
+ b) if the subset of entries with
299
+ vacmAccessContextPrefix matching the contextName
300
+ in the message is not empty,
301
+ then discard the rest
302
+ c) discard all entries with ContextPrefixes shorter
303
+ than the longest one remaining in the set
304
+ d) select the entry with the highest securityLevel
305
+
306
+ Please note that for securityLevel noAuthNoPriv, all
307
+ groups are really equivalent since the assumption that
308
+ the securityName has been authenticated does not hold.
309
+ "
310
+ ::= { vacmMIBObjects 4 }
311
+
312
+ vacmAccessEntry OBJECT-TYPE
313
+ SYNTAX VacmAccessEntry
314
+ MAX-ACCESS not-accessible
315
+ STATUS current
316
+ DESCRIPTION "An access right configured in the Local Configuration
317
+ Datastore (LCD) authorizing access to an SNMP context.
318
+
319
+ Entries in this table can use an instance value for
320
+ object vacmGroupName even if no entry in table
321
+ vacmAccessSecurityToGroupTable has a corresponding
322
+ value for object vacmGroupName.
323
+ "
324
+ INDEX { vacmGroupName,
325
+ vacmAccessContextPrefix,
326
+ vacmAccessSecurityModel,
327
+ vacmAccessSecurityLevel
328
+ }
329
+ ::= { vacmAccessTable 1 }
330
+
331
+ VacmAccessEntry ::= SEQUENCE
332
+ {
333
+ vacmAccessContextPrefix SnmpAdminString,
334
+ vacmAccessSecurityModel SnmpSecurityModel,
335
+ vacmAccessSecurityLevel SnmpSecurityLevel,
336
+ vacmAccessContextMatch INTEGER,
337
+ vacmAccessReadViewName SnmpAdminString,
338
+ vacmAccessWriteViewName SnmpAdminString,
339
+ vacmAccessNotifyViewName SnmpAdminString,
340
+ vacmAccessStorageType StorageType,
341
+ vacmAccessStatus RowStatus
342
+ }
343
+
344
+ vacmAccessContextPrefix OBJECT-TYPE
345
+ SYNTAX SnmpAdminString (SIZE(0..32))
346
+ MAX-ACCESS not-accessible
347
+ STATUS current
348
+ DESCRIPTION "In order to gain the access rights allowed by this
349
+ conceptual row, a contextName must match exactly
350
+ (if the value of vacmAccessContextMatch is 'exact')
351
+ or partially (if the value of vacmAccessContextMatch
352
+ is 'prefix') to the value of the instance of this
353
+ object.
354
+ "
355
+ ::= { vacmAccessEntry 1 }
356
+
357
+ vacmAccessSecurityModel OBJECT-TYPE
358
+ SYNTAX SnmpSecurityModel
359
+ MAX-ACCESS not-accessible
360
+ STATUS current
361
+ DESCRIPTION "In order to gain the access rights allowed by this
362
+ conceptual row, this securityModel must be in use.
363
+ "
364
+ ::= { vacmAccessEntry 2 }
365
+
366
+ vacmAccessSecurityLevel OBJECT-TYPE
367
+ SYNTAX SnmpSecurityLevel
368
+ MAX-ACCESS not-accessible
369
+ STATUS current
370
+ DESCRIPTION "The minimum level of security required in order to
371
+ gain the access rights allowed by this conceptual
372
+ row. A securityLevel of noAuthNoPriv is less than
373
+ authNoPriv which in turn is less than authPriv.
374
+
375
+ If multiple entries are equally indexed except for
376
+ this vacmAccessSecurityLevel index, then the entry
377
+ which has the highest value for
378
+ vacmAccessSecurityLevel is selected.
379
+ "
380
+ ::= { vacmAccessEntry 3 }
381
+
382
+ vacmAccessContextMatch OBJECT-TYPE
383
+ SYNTAX INTEGER
384
+ { exact (1), -- exact match of prefix and contextName
385
+ prefix (2) -- Only match to the prefix
386
+ }
387
+ MAX-ACCESS read-create
388
+ STATUS current
389
+ DESCRIPTION "If the value of this object is exact(1), then all
390
+ rows where the contextName exactly matches
391
+ vacmAccessContextPrefix are selected.
392
+
393
+ If the value of this object is prefix(2), then all
394
+ rows where the contextName whose starting octets
395
+ exactly match vacmAccessContextPrefix are selected.
396
+ This allows for a simple form of wildcarding.
397
+ "
398
+ DEFVAL { exact }
399
+ ::= { vacmAccessEntry 4 }
400
+
401
+ vacmAccessReadViewName OBJECT-TYPE
402
+ SYNTAX SnmpAdminString (SIZE(0..32))
403
+ MAX-ACCESS read-create
404
+ STATUS current
405
+ DESCRIPTION "The value of an instance of this object identifies
406
+ the MIB view of the SNMP context to which this
407
+ conceptual row authorizes read access.
408
+
409
+ The identified MIB view is that one for which the
410
+ vacmViewTreeFamilyViewName has the same value as the
411
+ instance of this object; if the value is the empty
412
+ string or if there is no active MIB view having this
413
+ value of vacmViewTreeFamilyViewName, then no access
414
+ is granted.
415
+ "
416
+ DEFVAL { ''H } -- the empty string
417
+ ::= { vacmAccessEntry 5 }
418
+
419
+ vacmAccessWriteViewName OBJECT-TYPE
420
+ SYNTAX SnmpAdminString (SIZE(0..32))
421
+ MAX-ACCESS read-create
422
+ STATUS current
423
+ DESCRIPTION "The value of an instance of this object identifies
424
+ the MIB view of the SNMP context to which this
425
+ conceptual row authorizes write access.
426
+
427
+ The identified MIB view is that one for which the
428
+ vacmViewTreeFamilyViewName has the same value as the
429
+ instance of this object; if the value is the empty
430
+ string or if there is no active MIB view having this
431
+ value of vacmViewTreeFamilyViewName, then no access
432
+ is granted.
433
+ "
434
+ DEFVAL { ''H } -- the empty string
435
+ ::= { vacmAccessEntry 6 }
436
+
437
+ vacmAccessNotifyViewName OBJECT-TYPE
438
+ SYNTAX SnmpAdminString (SIZE(0..32))
439
+ MAX-ACCESS read-create
440
+ STATUS current
441
+ DESCRIPTION "The value of an instance of this object identifies
442
+ the MIB view of the SNMP context to which this
443
+ conceptual row authorizes access for notifications.
444
+
445
+ The identified MIB view is that one for which the
446
+ vacmViewTreeFamilyViewName has the same value as the
447
+ instance of this object; if the value is the empty
448
+ string or if there is no active MIB view having this
449
+ value of vacmViewTreeFamilyViewName, then no access
450
+ is granted.
451
+ "
452
+ DEFVAL { ''H } -- the empty string
453
+ ::= { vacmAccessEntry 7 }
454
+
455
+ vacmAccessStorageType OBJECT-TYPE
456
+ SYNTAX StorageType
457
+ MAX-ACCESS read-create
458
+ STATUS current
459
+ DESCRIPTION "The storage type for this conceptual row.
460
+
461
+ Conceptual rows having the value 'permanent' need not
462
+ allow write-access to any columnar objects in the row.
463
+ "
464
+ DEFVAL { nonVolatile }
465
+ ::= { vacmAccessEntry 8 }
466
+
467
+ vacmAccessStatus OBJECT-TYPE
468
+ SYNTAX RowStatus
469
+ MAX-ACCESS read-create
470
+ STATUS current
471
+ DESCRIPTION "The status of this conceptual row.
472
+
473
+ The RowStatus TC [RFC2579] requires that this
474
+ DESCRIPTION clause states under which circumstances
475
+ other objects in this row can be modified:
476
+
477
+ The value of this object has no effect on whether
478
+ other objects in this conceptual row can be modified.
479
+ "
480
+ ::= { vacmAccessEntry 9 }
481
+
482
+ -- Information about MIB views ***************************************
483
+
484
+ -- Support for instance-level granularity is optional.
485
+ --
486
+ -- In some implementations, instance-level access control
487
+ -- granularity may come at a high performance cost. Managers
488
+ -- should avoid requesting such configurations unnecessarily.
489
+
490
+ vacmMIBViews OBJECT IDENTIFIER ::= { vacmMIBObjects 5 }
491
+
492
+ vacmViewSpinLock OBJECT-TYPE
493
+ SYNTAX TestAndIncr
494
+ MAX-ACCESS read-write
495
+ STATUS current
496
+ DESCRIPTION "An advisory lock used to allow cooperating SNMP
497
+ Command Generator applications to coordinate their
498
+ use of the Set operation in creating or modifying
499
+ views.
500
+
501
+ When creating a new view or altering an existing
502
+ view, it is important to understand the potential
503
+ interactions with other uses of the view. The
504
+ vacmViewSpinLock should be retrieved. The name of
505
+ the view to be created should be determined to be
506
+ unique by the SNMP Command Generator application by
507
+ consulting the vacmViewTreeFamilyTable. Finally,
508
+ the named view may be created (Set), including the
509
+ advisory lock.
510
+ If another SNMP Command Generator application has
511
+ altered the views in the meantime, then the spin
512
+ lock's value will have changed, and so this creation
513
+ will fail because it will specify the wrong value for
514
+ the spin lock.
515
+
516
+ Since this is an advisory lock, the use of this lock
517
+ is not enforced.
518
+ "
519
+ ::= { vacmMIBViews 1 }
520
+
521
+ vacmViewTreeFamilyTable OBJECT-TYPE
522
+ SYNTAX SEQUENCE OF VacmViewTreeFamilyEntry
523
+ MAX-ACCESS not-accessible
524
+ STATUS current
525
+ DESCRIPTION "Locally held information about families of subtrees
526
+ within MIB views.
527
+
528
+ Each MIB view is defined by two sets of view subtrees:
529
+ - the included view subtrees, and
530
+ - the excluded view subtrees.
531
+ Every such view subtree, both the included and the
532
+
533
+ excluded ones, is defined in this table.
534
+
535
+ To determine if a particular object instance is in
536
+ a particular MIB view, compare the object instance's
537
+ OBJECT IDENTIFIER with each of the MIB view's active
538
+ entries in this table. If none match, then the
539
+ object instance is not in the MIB view. If one or
540
+ more match, then the object instance is included in,
541
+ or excluded from, the MIB view according to the
542
+ value of vacmViewTreeFamilyType in the entry whose
543
+ value of vacmViewTreeFamilySubtree has the most
544
+ sub-identifiers. If multiple entries match and have
545
+ the same number of sub-identifiers (when wildcarding
546
+ is specified with the value of vacmViewTreeFamilyMask),
547
+ then the lexicographically greatest instance of
548
+ vacmViewTreeFamilyType determines the inclusion or
549
+ exclusion.
550
+
551
+ An object instance's OBJECT IDENTIFIER X matches an
552
+ active entry in this table when the number of
553
+ sub-identifiers in X is at least as many as in the
554
+ value of vacmViewTreeFamilySubtree for the entry,
555
+ and each sub-identifier in the value of
556
+ vacmViewTreeFamilySubtree matches its corresponding
557
+ sub-identifier in X. Two sub-identifiers match
558
+ either if the corresponding bit of the value of
559
+ vacmViewTreeFamilyMask for the entry is zero (the
560
+ 'wild card' value), or if they are equal.
561
+
562
+ A 'family' of subtrees is the set of subtrees defined
563
+ by a particular combination of values of
564
+ vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask.
565
+
566
+ In the case where no 'wild card' is defined in the
567
+ vacmViewTreeFamilyMask, the family of subtrees reduces
568
+ to a single subtree.
569
+
570
+ When creating or changing MIB views, an SNMP Command
571
+ Generator application should utilize the
572
+ vacmViewSpinLock to try to avoid collisions. See
573
+ DESCRIPTION clause of vacmViewSpinLock.
574
+
575
+ When creating MIB views, it is strongly advised that
576
+ first the 'excluded' vacmViewTreeFamilyEntries are
577
+ created and then the 'included' entries.
578
+
579
+ When deleting MIB views, it is strongly advised that
580
+ first the 'included' vacmViewTreeFamilyEntries are
581
+
582
+ deleted and then the 'excluded' entries.
583
+
584
+ If a create for an entry for instance-level access
585
+ control is received and the implementation does not
586
+ support instance-level granularity, then an
587
+ inconsistentName error must be returned.
588
+ "
589
+ ::= { vacmMIBViews 2 }
590
+
591
+ vacmViewTreeFamilyEntry OBJECT-TYPE
592
+ SYNTAX VacmViewTreeFamilyEntry
593
+ MAX-ACCESS not-accessible
594
+ STATUS current
595
+ DESCRIPTION "Information on a particular family of view subtrees
596
+ included in or excluded from a particular SNMP
597
+ context's MIB view.
598
+
599
+ Implementations must not restrict the number of
600
+ families of view subtrees for a given MIB view,
601
+ except as dictated by resource constraints on the
602
+ overall number of entries in the
603
+ vacmViewTreeFamilyTable.
604
+
605
+ If no conceptual rows exist in this table for a given
606
+ MIB view (viewName), that view may be thought of as
607
+ consisting of the empty set of view subtrees.
608
+ "
609
+ INDEX { vacmViewTreeFamilyViewName,
610
+ vacmViewTreeFamilySubtree
611
+ }
612
+ ::= { vacmViewTreeFamilyTable 1 }
613
+
614
+ VacmViewTreeFamilyEntry ::= SEQUENCE
615
+ {
616
+ vacmViewTreeFamilyViewName SnmpAdminString,
617
+ vacmViewTreeFamilySubtree OBJECT IDENTIFIER,
618
+ vacmViewTreeFamilyMask OCTET STRING,
619
+ vacmViewTreeFamilyType INTEGER,
620
+ vacmViewTreeFamilyStorageType StorageType,
621
+ vacmViewTreeFamilyStatus RowStatus
622
+ }
623
+
624
+ vacmViewTreeFamilyViewName OBJECT-TYPE
625
+ SYNTAX SnmpAdminString (SIZE(1..32))
626
+ MAX-ACCESS not-accessible
627
+ STATUS current
628
+ DESCRIPTION "The human readable name for a family of view subtrees.
629
+ "
630
+ ::= { vacmViewTreeFamilyEntry 1 }
631
+
632
+ vacmViewTreeFamilySubtree OBJECT-TYPE
633
+ SYNTAX OBJECT IDENTIFIER
634
+ MAX-ACCESS not-accessible
635
+ STATUS current
636
+ DESCRIPTION "The MIB subtree which when combined with the
637
+ corresponding instance of vacmViewTreeFamilyMask
638
+ defines a family of view subtrees.
639
+ "
640
+ ::= { vacmViewTreeFamilyEntry 2 }
641
+
642
+ vacmViewTreeFamilyMask OBJECT-TYPE
643
+ SYNTAX OCTET STRING (SIZE (0..16))
644
+ MAX-ACCESS read-create
645
+ STATUS current
646
+ DESCRIPTION "The bit mask which, in combination with the
647
+ corresponding instance of vacmViewTreeFamilySubtree,
648
+ defines a family of view subtrees.
649
+
650
+ Each bit of this bit mask corresponds to a
651
+ sub-identifier of vacmViewTreeFamilySubtree, with the
652
+ most significant bit of the i-th octet of this octet
653
+ string value (extended if necessary, see below)
654
+ corresponding to the (8*i - 7)-th sub-identifier, and
655
+ the least significant bit of the i-th octet of this
656
+ octet string corresponding to the (8*i)-th
657
+ sub-identifier, where i is in the range 1 through 16.
658
+
659
+ Each bit of this bit mask specifies whether or not
660
+ the corresponding sub-identifiers must match when
661
+ determining if an OBJECT IDENTIFIER is in this
662
+ family of view subtrees; a '1' indicates that an
663
+ exact match must occur; a '0' indicates 'wild card',
664
+ i.e., any sub-identifier value matches.
665
+
666
+ Thus, the OBJECT IDENTIFIER X of an object instance
667
+ is contained in a family of view subtrees if, for
668
+ each sub-identifier of the value of
669
+ vacmViewTreeFamilySubtree, either:
670
+
671
+ the i-th bit of vacmViewTreeFamilyMask is 0, or
672
+
673
+ the i-th sub-identifier of X is equal to the i-th
674
+ sub-identifier of the value of
675
+ vacmViewTreeFamilySubtree.
676
+
677
+ If the value of this bit mask is M bits long and
678
+
679
+ there are more than M sub-identifiers in the
680
+ corresponding instance of vacmViewTreeFamilySubtree,
681
+ then the bit mask is extended with 1's to be the
682
+ required length.
683
+
684
+ Note that when the value of this object is the
685
+ zero-length string, this extension rule results in
686
+ a mask of all-1's being used (i.e., no 'wild card'),
687
+ and the family of view subtrees is the one view
688
+ subtree uniquely identified by the corresponding
689
+ instance of vacmViewTreeFamilySubtree.
690
+
691
+ Note that masks of length greater than zero length
692
+ do not need to be supported. In this case this
693
+ object is made read-only.
694
+ "
695
+ DEFVAL { ''H }
696
+ ::= { vacmViewTreeFamilyEntry 3 }
697
+
698
+ vacmViewTreeFamilyType OBJECT-TYPE
699
+ SYNTAX INTEGER { included(1), excluded(2) }
700
+ MAX-ACCESS read-create
701
+ STATUS current
702
+ DESCRIPTION "Indicates whether the corresponding instances of
703
+ vacmViewTreeFamilySubtree and vacmViewTreeFamilyMask
704
+ define a family of view subtrees which is included in
705
+ or excluded from the MIB view.
706
+ "
707
+ DEFVAL { included }
708
+ ::= { vacmViewTreeFamilyEntry 4 }
709
+
710
+ vacmViewTreeFamilyStorageType OBJECT-TYPE
711
+ SYNTAX StorageType
712
+ MAX-ACCESS read-create
713
+ STATUS current
714
+ DESCRIPTION "The storage type for this conceptual row.
715
+
716
+ Conceptual rows having the value 'permanent' need not
717
+ allow write-access to any columnar objects in the row.
718
+ "
719
+ DEFVAL { nonVolatile }
720
+ ::= { vacmViewTreeFamilyEntry 5 }
721
+
722
+ vacmViewTreeFamilyStatus OBJECT-TYPE
723
+ SYNTAX RowStatus
724
+ MAX-ACCESS read-create
725
+ STATUS current
726
+ DESCRIPTION "The status of this conceptual row.
727
+
728
+ The RowStatus TC [RFC2579] requires that this
729
+ DESCRIPTION clause states under which circumstances
730
+ other objects in this row can be modified:
731
+
732
+ The value of this object has no effect on whether
733
+ other objects in this conceptual row can be modified.
734
+ "
735
+ ::= { vacmViewTreeFamilyEntry 6 }
736
+
737
+ -- Conformance information *******************************************
738
+
739
+ vacmMIBCompliances OBJECT IDENTIFIER ::= { vacmMIBConformance 1 }
740
+ vacmMIBGroups OBJECT IDENTIFIER ::= { vacmMIBConformance 2 }
741
+
742
+ -- Compliance statements *********************************************
743
+
744
+ vacmMIBCompliance MODULE-COMPLIANCE
745
+ STATUS current
746
+ DESCRIPTION "The compliance statement for SNMP engines which
747
+ implement the SNMP View-based Access Control Model
748
+ configuration MIB.
749
+ "
750
+ MODULE -- this module
751
+ MANDATORY-GROUPS { vacmBasicGroup }
752
+
753
+ OBJECT vacmAccessContextMatch
754
+ MIN-ACCESS read-only
755
+ DESCRIPTION "Write access is not required."
756
+
757
+ OBJECT vacmAccessReadViewName
758
+ MIN-ACCESS read-only
759
+ DESCRIPTION "Write access is not required."
760
+
761
+ OBJECT vacmAccessWriteViewName
762
+ MIN-ACCESS read-only
763
+ DESCRIPTION "Write access is not required."
764
+
765
+ OBJECT vacmAccessNotifyViewName
766
+ MIN-ACCESS read-only
767
+ DESCRIPTION "Write access is not required."
768
+
769
+ OBJECT vacmAccessStorageType
770
+ MIN-ACCESS read-only
771
+ DESCRIPTION "Write access is not required."
772
+
773
+ OBJECT vacmAccessStatus
774
+ MIN-ACCESS read-only
775
+ DESCRIPTION "Create/delete/modify access to the
776
+
777
+ vacmAccessTable is not required.
778
+ "
779
+
780
+ OBJECT vacmViewTreeFamilyMask
781
+ WRITE-SYNTAX OCTET STRING (SIZE (0))
782
+ MIN-ACCESS read-only
783
+ DESCRIPTION "Support for configuration via SNMP of subtree
784
+ families using wild-cards is not required.
785
+ "
786
+
787
+ OBJECT vacmViewTreeFamilyType
788
+ MIN-ACCESS read-only
789
+ DESCRIPTION "Write access is not required."
790
+
791
+ OBJECT vacmViewTreeFamilyStorageType
792
+ MIN-ACCESS read-only
793
+ DESCRIPTION "Write access is not required."
794
+
795
+ OBJECT vacmViewTreeFamilyStatus
796
+ MIN-ACCESS read-only
797
+ DESCRIPTION "Create/delete/modify access to the
798
+ vacmViewTreeFamilyTable is not required.
799
+ "
800
+ ::= { vacmMIBCompliances 1 }
801
+
802
+ -- Units of conformance **********************************************
803
+
804
+ vacmBasicGroup OBJECT-GROUP
805
+ OBJECTS {
806
+ vacmContextName,
807
+ vacmGroupName,
808
+ vacmSecurityToGroupStorageType,
809
+ vacmSecurityToGroupStatus,
810
+ vacmAccessContextMatch,
811
+ vacmAccessReadViewName,
812
+ vacmAccessWriteViewName,
813
+ vacmAccessNotifyViewName,
814
+ vacmAccessStorageType,
815
+ vacmAccessStatus,
816
+ vacmViewSpinLock,
817
+ vacmViewTreeFamilyMask,
818
+ vacmViewTreeFamilyType,
819
+ vacmViewTreeFamilyStorageType,
820
+ vacmViewTreeFamilyStatus
821
+ }
822
+ STATUS current
823
+ DESCRIPTION "A collection of objects providing for remote
824
+ configuration of an SNMP engine which implements
825
+
826
+ the SNMP View-based Access Control Model.
827
+ "
828
+ ::= { vacmMIBGroups 1 }
829
+
830
+ END