telemetry-snmp 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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