smilint output for ./RFC1353-MIB


Message Severities
SeverityCount
severe1
error2
minor error6
warning7
Message Types
TypeCount
import-failed (error)2
import-unused (warning)2
index-element-no-size (minor error)6
index-exceeds-too-large (warning)4
object-identifier-unknown (severe)1
type-without-format (warning)1

Messages:

RFC1353-MIB

   1: -- extracted from rfc1353.txt
   2: -- at Mon Nov 15 17:11:58 1999
   3: 
   4:           RFC1353-MIB DEFINITIONS ::= BEGIN
   5: 
   6:           IMPORTS
   7:                   system, mib, private, internet    FROM RFC1155-SMI
   7: error - identifier `system' cannot be imported from module `RFC1155-SMI'
   7: error - identifier `mib' cannot be imported from module `RFC1155-SMI'

   7: warning -
warning: identifier `private' imported from module `RFC1155-SMI' is never used

   7: warning -
warning: identifier `internet' imported from module `RFC1155-SMI' is never used
   8:                   OBJECT-TYPE                       FROM RFC-1212;
   9: 
  10:           snmpParties     OBJECT IDENTIFIER ::= { mib-2 20 }
  10: severe - unknown object identifier label `mib-2'
  11:           partyAdmin      OBJECT IDENTIFIER ::= { snmpParties 1 }
  12:           partyPublic     OBJECT IDENTIFIER ::= { snmpParties 2 }
  13: 
  14:           snmpSecrets     OBJECT IDENTIFIER ::= { mib-2 21 }
  15:           partyPrivate    OBJECT IDENTIFIER ::= { snmpSecrets 1 }
  16:           partyAccess     OBJECT IDENTIFIER ::= { snmpSecrets 2 }
  17:           partyViews      OBJECT IDENTIFIER ::= { snmpSecrets 3 }
  18: 
  19: 
  20:           --                  Textual Conventions
  21: 
  22:           --    A textual convention denoting a SNMP party identifier:
  23: 
  24:           Party ::= OBJECT IDENTIFIER
  25: 
  26: 
  27:           --    A party's authentication clock - a non-negative integer
  28:           -- which is incremented as specified/allowed by the party's
  29:           -- Authentication Protocol.
  30:           --    For noAuth, a party's authentication clock is unused and
  31:           -- its value is undefined.
  32:           --    For md5AuthProtocol, a party's authentication clock is a
  33:           -- relative clock with 1-second granularity.
  34: 
  35:           Clock ::= INTEGER (0..2147483647)
  35: warning - warning: type `Clock' has no format specification
  36: 
  37: 
  38:           --    A textual convention denoting a transport service
  39:           -- address.
  40:           --    For rfc1351Domain, a TAddress is 6 octets long,
  41:           -- the initial 4 octets containing the IP-address in
  42:           -- network-byte order and the last 2 containing the
  43:           -- UDP port in network-byte order.
  44: 
  45:           TAddress ::= OCTET STRING
  46: 
  47: 
  48:           --- Definitions of Security Protocols
  49: 
  50:           partyProtocols
  51:               OBJECT IDENTIFIER ::= { partyAdmin 1 }
  52: 
  53:           noAuth                  -- The protocol without authentication
  54:               OBJECT IDENTIFIER ::= { partyProtocols 1 }
  55: 
  56:           noPriv                  -- The protocol without privacy
  57:               OBJECT IDENTIFIER ::= { partyProtocols 3 }
  58: 
  59:           desPrivProtocol         -- The DES Privacy Protocol
  60:               OBJECT IDENTIFIER ::= { partyProtocols 4 }
  61: 
  62:           md5AuthProtocol         -- The MD5 Authentication Protocol
  63:               OBJECT IDENTIFIER ::= { partyProtocols 5 }
  64: 
  65: 
  66:           --- definitions of Transport Domains
  67: 
  68:           transportDomains
  69:               OBJECT IDENTIFIER ::= { partyAdmin 2 }
  70: 
  71:           rfc1351Domain --- RFC-1351 (SNMP over UDP, using SNMP Parties)
  72:               OBJECT IDENTIFIER ::= { transportDomains 1 }
  73: 
  74:           --- definitions of Proxy Domains
  75: 
  76:           proxyDomains
  77:               OBJECT IDENTIFIER ::= { partyAdmin 3 }
  78: 
  79:           noProxy                --- Local operation
  80:               OBJECT IDENTIFIER ::= { proxyDomains 1 }
  81: 
  82: 
  83:           ---    Definition of Initial Party Identifiers
  84: 
  85:           --  When devices are installed, they need to be configured
  86:           --  with an initial set of SNMP parties.  The configuration
  87:           --  of SNMP parties requires (among other things) the
  88:           --  assignment of several OBJECT IDENTIFIERs.  Any local
  89:           --  network administration can obtain the delegated
  90:           --  authority necessary to assign its own OBJECT
  91:           --  IDENTIFIERs.  However, to provide for those
  92:           --  administrations who have not obtained the necessary
  93:           --  authority, this document allocates a branch of the
  94:           --  naming tree for use with the following conventions.
  95: 
  96:           initialPartyId
  97:               OBJECT IDENTIFIER ::= { partyAdmin 4 }
  98: 
  99:           --  Note these are identified as "initial" party identifiers
 100:           --  since these allow secure SNMP communication to proceed,
 101:           --  thereby allowing further SNMP parties to be configured
 102:           --  through use of the SNMP itself.
 103: 
 104:           --  The following definitions identify a party identifier,
 105:           --  and specify the initial values of various object
 106:           --  instances indexed by that identifier.  In addition,
 107:           --  the initial MIB view and access control parameters
 108:           --  assigned, by convention, to these parties are identified.
 109: 
 110:           --    Party Identifiers for use as initial SNMP parties
 111:           --       at IP address  a.b.c.d
 112: 
 113:           -- partyIdentity            = { initialPartyId a b c d 1 }
 114:           -- partyTDomain             = { rfc1351Domain }
 115:           -- partyTAddress            = a.b.c.d, 161
 116:           -- partyProxyFor            = { noProxy }
 117:           -- partyAuthProtocol        = { noAuth }
 118:           -- partyAuthClock           = 0
 119:           -- partySecretsAuthPrivate  = ''h    (the empty string)
 120:           -- partyAuthPublic          = ''h    (the empty string)
 121:           -- partyAuthLifetime        = 0
 122:           -- partyPrivProtocol        = { noPriv }
 123:           -- partySecretsPrivPrivate  = ''h    (the empty string)
 124:           -- partyPrivPublic          = ''h    (the empty string)
 125: 
 126:           -- partyIdentity            = { initialPartyId a b c d 2 }
 127:           -- partyTDomain             = { rfc1351Domain }
 128:           -- partyTAddress            = assigned by local administration
 129:           -- partyProxyFor            = { noProxy }
 130:           -- partyAuthProtocol        = { noAuth }
 131:           -- partyAuthClock           = 0
 132:           -- partySecretsAuthPrivate  = ''h    (the empty string)
 133:           -- partyAuthPublic          = ''h    (the empty string)
 134:           -- partyAuthLifetime        = 0
 135:           -- partyPrivProtocol        = { noPriv }
 136:           -- partySecretsPrivPrivate  = ''h    (the empty string)
 137:           -- partyPrivPublic          = ''h    (the empty string)
 138: 
 139:           -- partyIdentity            = { initialPartyId a b c d 3 }
 140:           -- partyTDomain             = { rfc1351Domain }
 141:           -- partyTAddress            = a.b.c.d, 161
 142:           -- partyProxyFor            = { noProxy }
 143:           -- partyAuthProtocol        = { md5AuthProtocol }
 144:           -- partyAuthClock           = 0
 145:           -- partySecretsAuthPrivate  = assigned by local administration
 146:           -- partyAuthPublic          = ''h    (the empty string)
 147:           -- partyAuthLifetime        = 300
 148:           -- partyPrivProtocol        = { noPriv }
 149:           -- partySecretsPrivPrivate  = ''h    (the empty string)
 150:           -- partyPrivPublic          = ''h    (the empty string)
 151: 
 152:           -- partyIdentity            = { initialPartyId a b c d 4 }
 153:           -- partyTDomain             = { rfc1351Domain }
 154:           -- partyTAddress            = assigned by local administration
 155:           -- partyProxyFor            = { noProxy }
 156:           -- partyAuthProtocol        = { md5AuthProtocol }
 157:           -- partyAuthClock           = 0
 158:           -- partySecretsAuthPrivate  = assigned by local administration
 159:           -- partyAuthPublic          = ''h    (the empty string)
 160:           -- partyAuthLifetime        = 300
 161:           -- partyPrivProtocol        = { noPriv }
 162:           -- partySecretsPrivPrivate  = ''h    (the empty string)
 163:           -- partyPrivPublic          = ''h    (the empty string)
 164: 
 165:           -- partyIdentity            = { initialPartyId a b c d 5 }
 166:           -- partyTDomain             = { rfc1351Domain }
 167:           -- partyTAddress            = a.b.c.d, 161
 168:           -- partyProxyFor            = { noProxy }
 169:           -- partyAuthProtocol        = { md5AuthProtocol }
 170:           -- partyAuthClock           = 0
 171:           -- partySecretsAuthPrivate  = assigned by local administration
 172:           -- partyAuthPublic          = ''h    (the empty string)
 173:           -- partyAuthLifetime        = 300
 174:           -- partyPrivProtocol        = { desPrivProtocol }
 175:           -- partySecretsPrivPrivate  = assigned by local administration
 176:           -- partyPrivPublic          = ''h    (the empty string)
 177: 
 178:           -- partyIdentity            = { initialPartyId a b c d 6 }
 179:           -- partyTDomain             = { rfc1351Domain }
 180:           -- partyTAddress            = assigned by local administration
 181:           -- partyProxyFor            = { noProxy }
 182:           -- partyAuthProtocol        = { md5AuthProtocol }
 183:           -- partyAuthClock           = 0
 184:           -- partySecretsAuthPrivate  = assigned by local administration
 185:           -- partyAuthPublic          = ''h    (the empty string)
 186:           -- partyAuthLifetime        = 300
 187:           -- partyPrivProtocol        = { desPrivProtocol }
 188:           -- partySecretsPrivPrivate  = assigned by local administration
 189:           -- partyPrivPublic          = ''h   (the empty string)
 190: 
 191: 
 192:           --  The initial access control parameters assigned, by
 193:           --  convention, to these parties are:
 194: 
 195:           -- aclTarget     = { initialPartyId a b c d 1 }
 196:           -- aclSubject    = { initialPartyId a b c d 2 }
 197:           -- aclPrivileges = 3 (Get & Get-Next)
 198: 
 199:           -- aclTarget     = { initialPartyId a b c d 2 }
 200:           -- aclSubject    = { initialPartyId a b c d 1 }
 201:           -- aclPrivileges = 20 (GetResponse & Trap)
 202: 
 203:           -- aclTarget     = { initialPartyId a b c d 3 }
 204:           -- aclSubject    = { initialPartyId a b c d 4 }
 205:           -- aclPrivileges = 11 (Get, Get-Next & Set)
 206: 
 207:           -- aclTarget     = { initialPartyId a b c d 4 }
 208:           -- aclSubject    = { initialPartyId a b c d 3 }
 209:           -- aclPrivileges = 20 (GetResponse & Trap)
 210: 
 211:           -- aclTarget     = { initialPartyId a b c d 5 }
 212:           -- aclSubject    = { initialPartyId a b c d 6 }
 213:           -- aclPrivileges = 11 (Get, Get-Next & Set)
 214: 
 215:           -- aclTarget     = { initialPartyId a b c d 6 }
 216:           -- aclSubject    = { initialPartyId a b c d 5 }
 217:           -- aclPrivileges = 20 (GetResponse & Trap)
 218:           --  The initial MIB views assigned, by convention, to
 219:           --  these parties are:
 220: 
 221:           -- viewParty    = { initialPartyId a b c d 1 }
 222:           -- viewSubtree  = { system }
 223:           -- viewStatus   = { included }
 224:           -- viewMask     = { ''h }
 225: 
 226:           -- viewParty    = { initialPartyId a b c d 1 }
 227:           -- viewSubtree  = { snmpParties }
 228:           -- viewStatus   = { included }
 229:           -- viewMask     = { ''h }
 230: 
 231:           -- viewParty    = { initialPartyId a b c d 3 }
 232:           -- viewSubtree  = { internet }
 233:           -- viewStatus   = { included }
 234:           -- viewMask     = { ''h }
 235: 
 236:           -- viewParty    = { initialPartyId a b c d 3 }
 237:           -- viewSubtree  = { partyPrivate }
 238:           -- viewStatus   = { excluded }
 239:           -- viewMask     = { ''h }
 240: 
 241:           -- viewParty    = { initialPartyId a b c d 5 }
 242:           -- viewSubtree  = { internet }
 243:           -- viewStatus   = { included }
 244:           -- viewMask     = { ''h }
 245: 
 246: 
 247:           --   The SNMP Party Public Database Group
 248:           --
 249:           -- The non-secret party information.
 250:           --
 251:           -- Implementation of the objects in this group is mandatory.
 252: 
 253:           partyTable OBJECT-TYPE
 254:               SYNTAX  SEQUENCE OF PartyEntry
 255:               ACCESS  not-accessible
 256:               STATUS  mandatory
 257:               DESCRIPTION
 258:                       "The SNMP Party Public database.
 259: 
 260:                       An agent must ensure that there is, at all times,
 261:                       a one-to-one correspondence between entries in
 262:                       this table and entries in the partySecretsTable.
 263: 
 264:                       The creation/deletion of instances in this table
 265:                       via SNMP Set-Requests is not allowed.  Instead,
 266:                       entries in this table are created/deleted as a
 267:                       side-effect of the creation/deletion of
 268:                       corresponding entries in the partySecretsTable.
 269: 
 270:                       Thus, a SNMP Set-Request whose varbinds contain a
 271:                       reference to a non-existent instance of a
 272:                       partyTable object, but no reference to the
 273:                       corresponding instance of a partySecretsTable
 274:                       object, will be rejected."
 275:           ::= { partyPublic 1 }
 276: 
 277:           partyEntry OBJECT-TYPE
 277: warning - warning: index of row `partyEntry' can exceed OID size limit by 7 subidentifier(s)
 278:               SYNTAX  PartyEntry
 279:               ACCESS  not-accessible
 280:               STATUS  mandatory
 281:               DESCRIPTION
 282:                       "Locally held non-secret information about a
 283:                       particular SNMP party, which is available for
 284:                       access by network management.  Note that this does
 285:                       not include all locally held information about a
 286:                       party.  In particular, it does not include the
 287:                       'last-timestamp' (i.e., the timestamp of the last
 288:                       authentic message received) or the 'nonce'
 289:                       values."
 290:               INDEX  { partyIdentity }
 291:               ::= { partyTable 1 }
 292: 
 293:           PartyEntry ::=
 294:               SEQUENCE {
 295:                   partyIdentity
 296:                       Party,
 297:                   partyTDomain
 298:                       OBJECT IDENTIFIER,
 299:                   partyTAddress
 300:                       TAddress,
 301:                   partyProxyFor
 302:                       Party,
 303:                   partyAuthProtocol
 304:                       OBJECT IDENTIFIER,
 305:                   partyAuthClock
 306:                       Clock,
 307:                   partyAuthPublic
 308:                       OCTET STRING,
 309:                   partyAuthLifetime
 310:                       INTEGER,
 311:                   partyPrivProtocol
 312:                       OBJECT IDENTIFIER,
 313:                   partyPrivPublic
 314:                       OCTET STRING,
 315:                   partyMaxMessageSize
 316:                       INTEGER,
 317:                   partyStatus
 318:                       INTEGER
 319:               }
 320: 
 321:           partyIdentity  OBJECT-TYPE
 321: minor error - index element `partyIdentity' of row `partyEntry' should but cannot have a size restriction
 322:               SYNTAX  Party
 323:               ACCESS  read-write
 324:               STATUS  mandatory
 325:               DESCRIPTION
 326:                       "A party identifier uniquely identifying a
 327:                       particular SNMP party."
 328:               ::= { partyEntry 1 }
 329: 
 330:           partyTDomain  OBJECT-TYPE
 331:               SYNTAX  OBJECT IDENTIFIER
 332:               ACCESS  read-write
 333:               STATUS  mandatory
 334:               DESCRIPTION
 335:                       "Indicates the kind of transport service by which
 336:                       the party receives network management traffic. An
 337:                       example of a transport domain is 'rfc1351Domain'
 338:                       (SNMP over UDP)."
 339:               DEFVAL  { rfc1351Domain }
 340:               ::= { partyEntry 2 }
 341: 
 342:           partyTAddress  OBJECT-TYPE
 343:               SYNTAX  TAddress
 344:               ACCESS  read-write
 345:               STATUS  mandatory
 346:               DESCRIPTION
 347:                       "The transport service address by which the party
 348:                       receives network management traffic, formatted
 349:                       according to the corresponding value of
 350:                       partyTDomain.  For rfc1351Domain, partyTAddress is
 351:                       formatted as a 4-octet IP Address concatenated
 352:                       with a 2-octet UDP port number."
 353:               DEFVAL  { '000000000000'h }
 354:               ::= { partyEntry 3 }
 355: 
 356:           partyProxyFor OBJECT-TYPE
 357:               SYNTAX  Party
 358:               ACCESS  read-write
 359:               STATUS  mandatory
 360:               DESCRIPTION
 361:                       "The identity of a second SNMP party or other
 362:                       management entity with which interaction may be
 363:                       necessary to satisfy received management requests.
 364:                       In this context, the distinguished value { noProxy
 365:                       } signifies that the party responds to received
 366:                       management requests by entirely local mechanisms."
 367:               DEFVAL  { noProxy }
 368:               ::= { partyEntry 4 }
 369: 
 370:           partyAuthProtocol OBJECT-TYPE
 371:               SYNTAX  OBJECT IDENTIFIER
 372:               ACCESS  read-write
 373:               STATUS  mandatory
 374:               DESCRIPTION
 375:                       "The authentication protocol by which all messages
 376:                       generated by the party are authenticated as to
 377:                       origin and integrity.  In this context, the value
 378:                       { noAuth } signifies that messages generated by
 379:                       the party are not authenticated."
 380:               DEFVAL  { md5AuthProtocol }
 381:               ::= { partyEntry 5 }
 382: 
 383:           partyAuthClock OBJECT-TYPE
 384:               SYNTAX  Clock
 385:               ACCESS  read-write
 386:               STATUS  mandatory
 387:               DESCRIPTION
 388:                       "The authentication clock which represents the
 389:                       local notion of the current time specific to the
 390:                       party.  This value must not be decremented unless
 391:                       the party's secret information is changed
 392:                       simultaneously, at which time the party's nonce
 393:                       and last-timestamp values must also be reset to
 394:                       zero, and the new value of the clock,
 395:                       respectively."
 396:               DEFVAL  { 0 }
 397:               ::= { partyEntry 6 }
 398: 
 399:           partyAuthPublic OBJECT-TYPE
 400:               SYNTAX  OCTET STRING -- for md5AuthProtocol: (SIZE (0..16))
 401:               ACCESS  read-write
 402:               STATUS  mandatory
 403:               DESCRIPTION
 404:                       "A publically-readable value for the party.
 405: 
 406:                       Depending on the party's authentication protocol,
 407:                       this value may be needed to support the party's
 408:                       authentication protocol.  Alternatively, it may be
 409:                       used by a manager during the procedure for
 410:                       altering secret information about a party.  (For
 411:                       example, by altering the value of an instance of
 412:                       this object in the same SNMP Set-Request used to
 413:                       update an instance of partyAuthPrivate, a
 414:                       subsequent Get-Request can determine if the Set-
 415:                       Request was successful in the event that no
 416:                       response to the Set-Request is received, see RFC
 417:                       1352.)
 418: 
 419:                       The length of the value is dependent on the
 420:                       party's authentication protocol.  If not used by
 421:                       the authentication protocol, it is recommended
 422:                       that agents support values of any length up to and
 423:                       including the length of the corresponding
 424:                       partyAuthPrivate object."
 425:               DEFVAL  { ''h }      -- the empty string
 426:               ::= { partyEntry 7 }
 427: 
 428:           partyAuthLifetime OBJECT-TYPE
 429:               SYNTAX  INTEGER (0..2147483647)
 430:               ACCESS  read-write
 431:               STATUS  mandatory
 432:               DESCRIPTION
 433:                       "The lifetime (in units of seconds) which
 434:                       represents an administrative upper bound on
 435:                       acceptable delivery delay for protocol messages
 436:                       generated by the party."
 437:               DEFVAL  { 300 }
 438:               ::= { partyEntry 8 }
 439: 
 440:           partyPrivProtocol OBJECT-TYPE
 441:               SYNTAX  OBJECT IDENTIFIER
 442:               ACCESS  read-write
 443:               STATUS  mandatory
 444:               DESCRIPTION
 445:                       "The privacy protocol by which all protocol
 446:                       messages received by the party are protected from
 447:                       disclosure.  In this context, the value { noPriv }
 448:                       signifies that messages received by the party are
 449:                       not protected."
 450:               DEFVAL  { noPriv }
 451:               ::= { partyEntry 9 }
 452: 
 453:           partyPrivPublic OBJECT-TYPE
 454:               SYNTAX  OCTET STRING -- for desPrivProtocol: (SIZE (0..16))
 455:               ACCESS  read-write
 456:               STATUS  mandatory
 457:               DESCRIPTION
 458:                       "A publically-readable value for the party.
 459: 
 460:                       Depending on the party's privacy protocol, this
 461:                       value may be needed to support the party's privacy
 462:                       protocol.  Alternatively, it may be used by a
 463:                       manager as a part of its procedure for altering
 464:                       secret information about a party.  (For example,
 465:                       by altering the value of an instance of this
 466:                       object in the same SNMP Set-Request used to update
 467:                       an instance of partyPrivPrivate, a subsequent
 468:                       Get-Request can determine if the Set-Request was
 469:                       successful in the event that no response to the
 470:                       Set-Request is received, see RFC 1352.)
 471: 
 472:                       The length of the value is dependent on the
 473:                       party's privacy protocol.  If not used by the
 474:                       privacy protocol, it is recommended that agents
 475:                       support values of any length up to and including
 476:                       the length of the corresponding partyPrivPrivate
 477:                       object."
 478:               DEFVAL  { ''h }     -- the empty string
 479:               ::= { partyEntry 10 }
 480: 
 481:           partyMaxMessageSize OBJECT-TYPE
 482:               SYNTAX  INTEGER (484..65507)
 483:               ACCESS  read-write
 484:               STATUS  mandatory
 485:               DESCRIPTION
 486:                       "The maximum length in octets of a SNMP message
 487:                       which this party will accept.  For parties which
 488:                       execute at an agent, the agent initializes this
 489:                       object to the maximum length supported by the
 490:                       agent, and does not let the object be set to any
 491:                       larger value.  For parties which do not execute at
 492:                       the agent, the agent must allow the manager to set
 493:                       this object to any legal value, even if it is
 494:                       larger than the agent can generate."
 495:               DEFVAL  { 484 }
 496:               ::= { partyEntry 11 }
 497: 
 498:           partyStatus OBJECT-TYPE
 499:               SYNTAX  INTEGER  { valid(1), invalid(2) }
 500:               ACCESS  read-only
 501:               STATUS  mandatory
 502:               DESCRIPTION
 503:                       "The status of the locally-held information on a
 504:                       particular SNMP party.
 505:                       The instance of this object for a particular party
 506:                       and the instance of partySecretsStatus for the
 507:                       same party always have the same value.
 508: 
 509:                       This object will typically provide unrestricted
 510:                       read-only access to the status of parties.  In
 511:                       contrast, partySecretsStatus will typically
 512:                       provide restricted read-write access to the status
 513:                       of parties."
 514:               ::= { partyEntry 12 }
 515: 
 516: 
 517:           --   The SNMP Party Secrets Database Group
 518: 
 519:           -- The secret party information
 520:           --
 521:           -- Implementation of the objects in this group is mandatory.
 522: 
 523:           partySecretsTable OBJECT-TYPE
 524:               SYNTAX  SEQUENCE OF PartySecretsEntry
 525:               ACCESS  not-accessible
 526:               STATUS  mandatory
 527:               DESCRIPTION
 528:                       "The SNMP Party Secrets database."
 529:           ::= { partyPrivate 1 }
 530: 
 531:           partySecretsEntry OBJECT-TYPE
 531: warning - warning: index of row `partySecretsEntry' can exceed OID size limit by 7 subidentifier(s)
 532:               SYNTAX  PartySecretsEntry
 533:               ACCESS  not-accessible
 534:               STATUS  mandatory
 535:               DESCRIPTION
 536:                       "Locally held secret information about a
 537:                       particular SNMP party, which is available for
 538:                       access by network management.
 539: 
 540:                       When a SNMP Set-Request is used to update the
 541:                       values of instances of objects in this table, it
 542:                       is recommended that the same SNMP Set-Request also
 543:                       alter the value of a non-secret object instance
 544:                       (e.g., an instance of partyAuthPublic or
 545:                       partyPrivPublic).  This allows a Get-Request of
 546:                       that non-secret object instance to determine if
 547:                       the Set-Request was successful in the event that
 548:                       no response which matches the Set-Request is
 549:                       received, see RFC 1352."
 550:               INDEX  { partySecretsIdentity }
 551:               ::= { partySecretsTable 1 }
 552: 
 553:           PartySecretsEntry ::=
 554:               SEQUENCE {
 555:                   partySecretsIdentity
 556:                       Party,
 557:                   partySecretsAuthPrivate
 558:                       OCTET STRING,
 559:                   partySecretsPrivPrivate
 560:                       OCTET STRING,
 561:                   partySecretsStatus
 562:                       INTEGER
 563:               }
 564: 
 565:           partySecretsIdentity  OBJECT-TYPE
 565: minor error - index element `partySecretsIdentity' of row `partySecretsEntry' should but cannot have a size restriction
 566:               SYNTAX  Party
 567:               ACCESS  read-write
 568:               STATUS  mandatory
 569:               DESCRIPTION
 570:                       "A party identifier uniquely identifying a
 571:                       particular SNMP party."
 572:               ::= { partySecretsEntry 1 }
 573: 
 574:           partySecretsAuthPrivate OBJECT-TYPE
 575:               SYNTAX  OCTET STRING   -- for md5AuthProtocol: (SIZE (16))
 576:               ACCESS  read-write
 577:               STATUS  mandatory
 578:               DESCRIPTION
 579:                       "An encoding of the party's private authentication
 580:                       key which may be needed to support the
 581:                       authentication protocol.  Although the value of
 582:                       this variable may be altered by a management
 583:                       operation (e.g., a SNMP Set-Request), its value
 584:                       can never be retrieved by a management operation:
 585:                       when read, the value of this variable is the zero
 586:                       length OCTET STRING.
 587: 
 588:                       The private authentication key is NOT directly
 589:                       represented by the value of this variable, but
 590:                       rather it is represented according to an encoding.
 591:                       This encoding is the bitwise exclusive-OR of the
 592:                       old key with the new key, i.e., of the old private
 593:                       authentication key (prior to the alteration) with
 594:                       the new private authentication key (after the
 595:                       alteration).  Thus, when processing a received
 596:                       protocol Set operation, the new private
 597:                       authentication key is obtained from the value of
 598:                       this variable as the result of a bitwise
 599:                       exclusive-OR of the variable's value and the old
 600:                       private authentication key.  In calculating the
 601:                       exclusive-OR, if the old key is shorter than the
 602:                       new key, zero-valued padding is appended to the
 603:                       old key.  If no value for the old key exists, a
 604:                       zero-length OCTET STRING is used in the
 605:                       calculation."
 606:               DEFVAL  { ''h }     -- the empty string
 607:               ::= { partySecretsEntry 2 }
 608: 
 609:           partySecretsPrivPrivate OBJECT-TYPE
 610:               SYNTAX  OCTET STRING   -- for desPrivProtocol: (SIZE (16))
 611:               ACCESS  read-write
 612:               STATUS  mandatory
 613:               DESCRIPTION
 614:                       "An encoding of the party's private encryption key
 615:                       which may be needed to support the privacy
 616:                       protocol.  Although the value of this variable may
 617:                       be altered by a management operation (e.g., a SNMP
 618:                       Set-Request), its value can never be retrieved by
 619:                       a management operation: when read, the value of
 620:                       this variable is the zero length OCTET STRING.
 621: 
 622:                       The private encryption key is NOT directly
 623:                       represented by the value of this variable, but
 624:                       rather it is represented according to an encoding.
 625:                       This encoding is the bitwise exclusive-OR of the
 626:                       old key with the new key, i.e., of the old private
 627:                       encryption key (prior to the alteration) with the
 628:                       new private encryption key (after the alteration).
 629:                       Thus, when processing a received protocol Set
 630:                       operation, the new private encryption key is
 631:                       obtained from the value of this variable as the
 632:                       result of a bitwise exclusive-OR of the variable's
 633:                       value and the old private encryption key.  In
 634:                       calculating the exclusive-OR, if the old key is
 635:                       shorter than the new key, zero-valued padding is
 636:                       appended to the old key.  If no value for the old
 637:                       key exists, a zero-length OCTET STRING is used in
 638:                       the calculation."
 639:               DEFVAL  { ''h }     -- the empty string
 640:               ::= { partySecretsEntry 3 }
 641: 
 642:           partySecretsStatus OBJECT-TYPE
 643:               SYNTAX  INTEGER  { valid(1), invalid(2) }
 644:               ACCESS  read-write
 645:               STATUS  mandatory
 646:               DESCRIPTION
 647:                       "The status of the locally-held information on a
 648:                       particular SNMP party.
 649:                       Setting an instance of this object to the value
 650:                       'valid(1)' has the effect of ensuring that valid
 651:                       local knowledge exists for the corresponding
 652:                       party.  For valid local knowledge to exist, there
 653:                       must be corresponding instances of each object in
 654:                       this table and in the partyTable.  Thus, the
 655:                       creation of instances in the partyTable (but not
 656:                       in the aclTable or viewTable) occurs as a direct
 657:                       result of the creation of instances in this table.
 658: 
 659:                       Setting an instance of this object to the value
 660:                       'invalid(2)' has the effect of invalidating all
 661:                       local knowledge of the corresponding party,
 662:                       including the invalidating of any/all entries in
 663:                       the partyTable, the partySecretsTable, the
 664:                       aclTable, and the viewTable which reference said
 665:                       party.
 666: 
 667:                       It is an implementation-specific matter as to
 668:                       whether the agent removes an invalidated entry
 669:                       from the table.  Accordingly, management stations
 670:                       must be prepared to receive from agents tabular
 671:                       information corresponding to entries not currently
 672:                       in use.  Proper interpretation of such entries
 673:                       requires examination of the relevant
 674:                       partySecretsStatus object."
 675:               DEFVAL  { valid }
 676:               ::= { partySecretsEntry 4 }
 677: 
 678: 
 679:           --  The SNMP Access Privileges Database Group
 680: 
 681:           --  This group of objects allows the SNMP itself to be used to
 682:           --  configure new SNMP parties, or to manipulate the access
 683:           --  privileges of existing parties.
 684:           --
 685:           --  Implementation of the objects in this group is mandatory.
 686: 
 687: 
 688:           aclTable OBJECT-TYPE
 689:               SYNTAX  SEQUENCE OF AclEntry
 690:               ACCESS  not-accessible
 691:               STATUS  mandatory
 692:               DESCRIPTION
 693:                       "The access privileges database."
 694:           ::= { partyAccess 1 }
 695:           aclEntry OBJECT-TYPE
 695: warning - warning: index of row `aclEntry' can exceed OID size limit by 136 subidentifier(s)
 696:               SYNTAX  AclEntry
 697:               ACCESS  not-accessible
 698:               STATUS  mandatory
 699:               DESCRIPTION
 700:                       "The access privileges for a particular requesting
 701:                       SNMP party in accessing a particular target SNMP
 702:                       party."
 703:               INDEX  { aclTarget, aclSubject }
 704:               ::= { aclTable 1 }
 705: 
 706:           AclEntry ::=
 707:               SEQUENCE {
 708:                   aclTarget
 709:                       Party,
 710:                   aclSubject
 711:                       Party,
 712:                   aclPrivileges
 713:                       INTEGER,
 714:                   aclStatus
 715:                       INTEGER
 716:               }
 717: 
 718:           aclTarget OBJECT-TYPE
 718: minor error - index element `aclTarget' of row `aclEntry' should but cannot have a size restriction
 719:               SYNTAX  Party
 720:               ACCESS  read-write
 721:               STATUS  mandatory
 722:               DESCRIPTION
 723:                       "The target SNMP party whose performance of
 724:                       management operations is constrained by this set
 725:                       of access privileges."
 726:               ::= { aclEntry 1 }
 727: 
 728:           aclSubject OBJECT-TYPE
 728: minor error - index element `aclSubject' of row `aclEntry' should but cannot have a size restriction
 729:               SYNTAX  Party
 730:               ACCESS  read-write
 731:               STATUS  mandatory
 732:               DESCRIPTION
 733:                       "The subject SNMP party whose requests for
 734:                       management operations to be performed is
 735:                       constrained by this set of access privileges."
 736:               ::= { aclEntry 2 }
 737: 
 738:           aclPrivileges OBJECT-TYPE
 739:               SYNTAX  INTEGER (0..31)
 740:               ACCESS  read-write
 741:               STATUS  mandatory
 742:               DESCRIPTION
 743:                       "The access privileges which govern what
 744:                       management operations a particular target party
 745:                       may perform when requested by a particular subject
 746:                       party.  These privileges are specified as a sum of
 747:                       values, where each value specifies a SNMP PDU type
 748:                       by which the subject party may request a permitted
 749:                       operation.  The value for a particular PDU type is
 750:                       computed as 2 raised to the value of the ASN.1
 751:                       context-specific tag for the appropriate SNMP PDU
 752:                       type.  The values (for the tags defined in RFC
 753:                       1157) are defined in RFC 1351 as:
 754: 
 755:                        Get         :   1
 756:                        GetNext     :   2
 757:                        GetResponse :   4
 758:                        Set         :   8
 759:                        Trap        :  16
 760: 
 761:                       The null set is represented by the value zero."
 762:               DEFVAL  { 3 }      -- Get & Get-Next
 763:               ::= { aclEntry 3 }
 764: 
 765:           aclStatus OBJECT-TYPE
 766:               SYNTAX  INTEGER  { valid(1), invalid(2) }
 767:               ACCESS  read-write
 768:               STATUS  mandatory
 769:               DESCRIPTION
 770:                       "The status of the access privileges for a
 771:                       particular requesting SNMP party in accessing a
 772:                       particular target SNMP party.  Setting an instance
 773:                       of this object to the value 'invalid(2)' has the
 774:                       effect of invalidating the corresponding access
 775:                       privileges.
 776: 
 777:                       It is an implementation-specific matter as to
 778:                       whether the agent removes an invalidated entry
 779:                       from the table.  Accordingly, management stations
 780:                       must be prepared to receive from agents tabular
 781:                       information corresponding to entries not currently
 782:                       in use.  Proper interpretation of such entries
 783:                       requires examination of the relevant aclStatus
 784:                       object."
 785:               DEFVAL  { valid }
 786:               ::= { aclEntry 4 }
 787: 
 788:           --   The MIB View Database Group
 789: 
 790:           --  This group of objects allows the SNMP itself to be used to
 791:           --  configure new SNMP parties, or to manipulate the MIB
 792:           --  MIB views of existing parties.
 793:           --
 794:           --  Implementation of the objects in this group is mandatory.
 795: 
 796: 
 797:           viewTable OBJECT-TYPE
 798:               SYNTAX  SEQUENCE OF ViewEntry
 799:               ACCESS  not-accessible
 800:               STATUS  mandatory
 801:               DESCRIPTION
 802:                       "The table contained in the local database which
 803:                       defines local MIB views.  Each SNMP party has a
 804:                       single MIB view which is defined by two
 805:                       collections of view subtrees: the included view
 806:                       subtrees, and the excluded view subtrees.  Every
 807:                       such subtree, both included and excluded, is
 808:                       defined in this table.
 809: 
 810:                       To determine if a particular object instance is in
 811:                       a particular SNMP party's MIB view, compare the
 812:                       object instance's Object Identifier with each
 813:                       entry (for this party) in this table.  If none
 814:                       match, then the object instance is not in the MIB
 815:                       view.  If one or more match, then the object
 816:                       instance is included in, or excluded from, the MIB
 817:                       view according to the value of viewStatus in the
 818:                       entry whose value of viewSubtree has the most
 819:                       sub-identifiers.  If multiple entries match and
 820:                       have the same number of sub-identifiers, then the
 821:                       lexicographically greatest instance of viewStatus
 822:                       determines the inclusion or exclusion.
 823: 
 824:                       An object instance's Object Identifier X matches
 825:                       an entry in this table when the number of sub-
 826:                       identifiers in X is at least as many as in the
 827:                       value of viewSubtree for the entry, and each sub-
 828:                       identifier in the value of viewSubtree matches its
 829:                       corresponding sub-identifier in X.  Two sub-
 830:                       identifiers match either if the corresponding bit
 831:                       of viewMask is zero (the 'wild card' value), or if
 832:                       they are equal.
 833: 
 834:                       Due to this 'wild card' capability, we introduce
 835:                       the term, a 'family' of view subtrees, to refer to
 836:                       the set of subtrees defined by a particular
 837:                       combination of values of viewSubtree and viewMask.
 838:                       In the case where no 'wild card' is defined in
 839:                       viewMask, the family of view subtrees reduces to a
 840:                       single view subtree."
 841:           ::= { partyViews 1 }
 842: 
 843:           viewEntry OBJECT-TYPE
 843: warning - warning: index of row `viewEntry' can exceed OID size limit by 136 subidentifier(s)
 844:               SYNTAX  ViewEntry
 845:               ACCESS  not-accessible
 846:               STATUS  mandatory
 847:               DESCRIPTION
 848:                       "Information on a particular family of view
 849:                       subtrees included in or excluded from a particular
 850:                       SNMP party's MIB view."
 851:               INDEX  { viewParty, viewSubtree }
 852:               ::= { viewTable 1 }
 853: 
 854:           ViewEntry ::=
 855:               SEQUENCE {
 856:                   viewParty
 857:                       Party,
 858:                   viewSubtree
 859:                       OBJECT IDENTIFIER,
 860:                   viewStatus
 861:                       INTEGER,
 862:                   viewMask
 863:                       OCTET STRING
 864:               }
 865: 
 866:           viewParty  OBJECT-TYPE
 866: minor error - index element `viewParty' of row `viewEntry' should but cannot have a size restriction
 867:               SYNTAX  Party
 868:               ACCESS  read-write
 869:               STATUS  mandatory
 870:               DESCRIPTION
 871:                       "The SNMP party whose single MIB view includes or
 872:                       excludes a particular family of view subtrees."
 873:               ::= { viewEntry 1 }
 874: 
 875:           viewSubtree OBJECT-TYPE
 875: minor error - index element `viewSubtree' of row `viewEntry' should but cannot have a size restriction
 876:               SYNTAX  OBJECT IDENTIFIER
 877:               ACCESS  read-write
 878:               STATUS  mandatory
 879:               DESCRIPTION
 880:                       "The view subtree which, in combination with the
 881:                       corresponding instance of viewMask, defines a
 882:                       family of view subtrees.  This family is included
 883:                       in, or excluded from the particular SNMP party's
 884:                       MIB view, according to the value of the
 885:                       corresponding instance of viewStatus."
 886:               ::= { viewEntry 2 }
 887: 
 888:           viewStatus OBJECT-TYPE
 889:               SYNTAX  INTEGER  {
 890:                           included(1),
 891:                           excluded(2),
 892:                           invalid(3)
 893:                       }
 894:               ACCESS  read-write
 895:               STATUS  mandatory
 896:               DESCRIPTION
 897:                       "The status of a particular family of view
 898:                       subtrees within the particular SNMP party's MIB
 899:                       view.  The value 'included(1)' indicates that the
 900:                       corresponding instances of viewSubtree and
 901:                       viewMask define a family of view subtrees included
 902:                       in the MIB view.  The  value 'excluded(2)'
 903:                       indicates that the corresponding instances of
 904:                       viewSubtree and viewMask define a family of view
 905:                       subtrees excluded from the MIB view.
 906: 
 907:                       Setting an instance of this object to the value
 908:                       'invalid(3)' has the effect of invalidating the
 909:                       presence or absence of the corresponding family of
 910:                       view subtrees in the corresponding SNMP party's
 911:                       MIB view.
 912: 
 913:                       It is an implementation-specific matter as to
 914:                       whether the agent removes an invalidated entry
 915:                       from the table.  Accordingly, management stations
 916:                       must be prepared to receive from agents tabular
 917:                       information corresponding to entries not currently
 918:                       in use.  Proper interpretation of such entries
 919:                       requires examination of the relevant viewStatus
 920:                       object."
 921:               DEFVAL  { included }
 922:               ::= { viewEntry 3 }
 923: 
 924:           viewMask  OBJECT-TYPE
 925:               SYNTAX  OCTET STRING (SIZE (0..16))
 926:               ACCESS  read-write
 927:               STATUS  mandatory
 928:               DESCRIPTION
 929:                       "The bit mask which, in combination with the
 930:                       corresponding instance of viewSubtree, defines a
 931:                       family of view subtrees.
 932:                       Each bit of this bit mask corresponds to a sub-
 933:                       identifier of viewSubtree, with the most
 934:                       significant bit of the i-th octet of this octet
 935:                       string value (extended if necessary, see below)
 936:                       corresponding to the (8*i - 7)-th sub-identifier,
 937:                       and the least significant bit of the i-th octet of
 938:                       this octet string corresponding to the (8*i)-th
 939:                       sub-identifier, where i is in the range 1 through
 940:                       16.
 941: 
 942:                       Each bit of this bit mask specifies whether or not
 943:                       the corresponding sub-identifiers must match when
 944:                       determining if an Object Identifier is in this
 945:                       family of view subtrees; a '1' indicates that an
 946:                       exact match must occur; a '0' indicates 'wild
 947:                       card', i.e., any sub-identifier value matches.
 948: 
 949:                       Thus, the Object Identifier X of an object
 950:                       instance is contained in a family of view subtrees
 951:                       if the following criteria are met:
 952: 
 953:                            for each sub-identifier of the value of
 954:                            viewSubtree, either:
 955: 
 956:                                 the i-th bit of viewMask is 0, or
 957: 
 958:                                 the i-th sub-identifier of X is equal to
 959:                                 the i-th sub-identifier of the value of
 960:                                 viewSubtree.
 961: 
 962:                       If the value of this bit mask is M bits long and
 963:                       there are more than M sub-identifiers in the
 964:                       corresponding instance of viewSubtree, then the
 965:                       bit mask is extended with 1's to be the required
 966:                       length.
 967: 
 968:                       Note that when the value of this object is the
 969:                       zero-length string, this extension rule results in
 970:                       a mask of all-1's being used (i.e., no 'wild
 971:                       card'), and the family of view subtrees is the one
 972:                       view subtree uniquely identified by the
 973:                       corresponding instance of viewSubtree."
 974:               DEFVAL  { ''h }
 975:               ::= { viewEntry 4 }
 976: 
 977: 
 978:           END