smilint output for ./TABLE-MODIF-TRACKING-MIB


Message Severities
SeverityCount
severe35
error6
minor error2
warning19
Message Types
TypeCount
group-unref (warning)4
import-failed (error)1
import-unused (warning)7
index-element-no-size (minor error)2
index-exceeds-too-large (warning)2
internal-flushing (warning)6
internal-other (severe)6
lexical (severe)12
object-identifier-not-prefix (error)1
object-identifier-unknown (severe)17
parent-row (error)4

Messages:

TABLE-MODIF-TRACKING-MIB

   1: -- extracted from draft-niraj-tmt-mib-01.txt
   2: -- at Thu Nov  7 06:11:16 2002
   3: 
   4:    TABLE-MODIF-TRACKING-MIB DEFINITIONS ::= BEGIN
   5: 
   6:    IMPORTS
   7:            MODULE-IDENTITY,
   8:            NOTIFICATION-TYPE,
   8: warning - warning: identifier `NOTIFICATION-TYPE' imported from module `SNMPv2-SMI' is never used
   9:            OBJECT-TYPE,
  10:            Counter32
  11:        FROM SNMPv2-SMI
  12:            TEXTUAL-CONVENTION,
  13:            TruthValue,
  14:            VariablePointer,
  14: warning - warning: identifier `VariablePointer' imported from module `SNMPv2-TC' is never used
  15:            TimeStamp,
  15: warning - warning: identifier `TimeStamp' imported from module `SNMPv2-TC' is never used
  16:            RowStatus
  17:        FROM SNMPv2-TC
  18:            MODULE-COMPLIANCE,
  18: warning - warning: identifier `MODULE-COMPLIANCE' imported from module `SNMPv2-CONF' is never used
  19:            NOTIFICATION-GROUP,
  20:            OBJECT-GROUP
  21:        FROM SNMPv2-CONF
  22:            SnmpAdminString
  23:        FROM SNMP-FRAMEWORK-MIB
  24:            InetAddressType,
  24: warning - warning: identifier `InetAddressType' imported from module `INET-ADDRESS-MIB' is never used
  25:            InetAddress
  25: warning - warning: identifier `InetAddress' imported from module `INET-ADDRESS-MIB' is never used
  26:        FROM INET-ADDRESS-MIB
  27:            Unsigned32
  28:        FROM CISCO-TC
  28: error - identifier `Unsigned32' cannot be imported from module `CISCO-TC'
  29:            ciscoMgmt
  29: warning - warning: identifier `ciscoMgmt' imported from module `CISCO-SMI' is never used
  30:        FROM CISCO-SMI;
  31: 
  32: 
  33:    tableModifTrackingMIB MODULE-IDENTITY
  34:        LAST-UPDATED "200211040000Z"
  35:        ORGANIZATION "Cisco Systems, Inc."
  36:        CONTACT-INFO "
  37:            Niraj Gopal
  38:            Cisco Systems, Inc.
  39:            170 W Tasman Drive
  40:            San Jose, CA 95134
  41:            USA
  42: 
  43:            Phone:  +1 408-527-3347
  44:            E-mail: niraj@cisco.com"
  45:        DESCRIPTION
  46:            "The MIB module to track and store the modifications
  47:            in data of NMS specified MIB tables implemented in an
  48:            SNMP command responder (traditionally called an SNMP
  49:            agent).
  50: 
  51:            This MIB allows an NMS to register for change monitoring
  52:            in the tables it is interested in.  This MIB then tracks
  53:            modifications in those registered tables, allowing the
  54:            NMS to poll one table to determine if others need to be
  55:            polled.
  56: 
  57:            This MIB keeps track of all modifications, including
  58:            adding a new row, deletion of a row, and modification
  59:            of an object in a row.  It can also be configured to
  60:            send change notifications to an NMS."
  61:        REVISION "200211040000Z"
  62:        DESCRIPTION
  63:            "Initial version of this MIB module."
  64:        ::= { mib-2 xxx }
  64: error - Object identifier element `xxx' name only allowed as first element
  64: severe - unknown object identifier label `mib-2'
  65: 
  66:    tmtMIBObjects OBJECT IDENTIFIER ::= {
  67:            tableModifTrackingMIB 1 }
  68: 
  69:    -- Subgroups
  70: 
  71:    tmtRegistration OBJECT IDENTIFIER
  72:                ::= { tmtMIBObjects 1 } tmtControl OBJECT IDENTIFIER
  73:                ::= { tmtMIBObjects 2 } tmtHist OBJECT IDENTIFIER
  74:                ::= { tmtMIBObjects 3 }
  75: 
  76:    -- Textual Conventions
  77: 
  78:    ModificationType ::= TEXTUAL-CONVENTION
  79:        STATUS          current
  80:        DESCRIPTION
  81:            "The MIB table data modification types that can be found
  82:            and recorded.  This is a bit map, with each bit representing
  83:            a different modification type as described below:
  84: 
  85:            Bit 0 - rowCreation     - Indicating creation of a row in
  86:                                      a MIB table.
  87:            Bit 1 - rowDeletion     - Representing deletion of a row
  88:                                      in a MIB table.
  89:            Bit 2 - rowModification - Indicating modification to an
  90:                                      object in a row in a MIB table.
  91: 
  92:            Setting all defined bits to 1 will enable the NMS to track
  93:            all the modification types."
  94:        SYNTAX  BITS {
  95:            rowCreation(0),
  96:            rowDeletion(1),
  97:            rowModification(2)
  98:            }
  99: 
 100:    -- MIB tables registration table
 101: 
 102:    tmtRegistrationTable OBJECT-TYPE
 103:        SYNTAX          SEQUENCE OF tmtRegistrationEntry
 103: severe - syntax error, unexpected LOWERCASE_IDENTIFIER, expecting UPPERCASE_IDENTIFIER
 104:        MAX-ACCESS      not-accessible
 105:        STATUS          current
 106:        DESCRIPTION
 107:            "A table to register the MIB tables for monitoring
 108:            various modification types e.g addition of new rows,
 109:            deletion of rows and modification in objects of existing
 110:            rows.  The changes in the registered MIB tables'
 111:            data will be recorded in tmtHistTableModifTable
 112:            and tmtHistRowModifTable tables. Only the tables that
 113:            are present in ctmtSupportedTable can be registered.
 114: 
 115:            If an NMS is interested in row modifications in only a
 116:            few objects in a particular table, it can do that by
 117:            specifying those objects in tmtRegExcludeObjTable."
 118:        ::= { tmtRegistration 1 }
 118: warning - warning: flushing recent incorrect declaration, see previous error(s)
 119: 
 120:    tmtRegistrationEntry OBJECT-TYPE
 120: error - row's parent node must be a table node
 121:        SYNTAX          TmtRegistrationEntry
 122:        MAX-ACCESS      not-accessible
 123:        STATUS          current
 124:        DESCRIPTION
 125:            "Information for tracking changes in data of MIB table
 126:            specified in this entry.
 127: 
 128:            Deleting an entry in tmtRegistrationTable deletes
 129:            all corresponding entries in tmtHistTableModifTable
 130:            and tmtHistRowModifTable tables.
 131: 
 132:            Entries in this table may not be changed while the
 133:            corresponding value of tmtRegistrationTrackModifs
 134:            is 'trackingModifications'."
 135: 
 136:        INDEX   { tmtRegistrationOwner, tmtRegistrationIndex }
 137:        ::= { tmtRegistrationTable 1 }
 137: severe - unknown object identifier label `tmtRegistrationTable'
 138: 
 139:    TmtRegistrationEntry ::=
 140:        SEQUENCE {
 141:            tmtRegistrationOwner            SnmpAdminString,
 142:            tmtRegistrationIndex            Unsigned32,
 143:            tmtRegistrationModifTypeTracked ModificationType,
 144:            tmtRegistrationTableID          OBJECT IDENTIFIER,
 145:            tmtRegistrationContextName      SnmpAdminString,
 146:            tmtRegistrationCtxtNameWildcard TruthValue,
 147:            tmtRegistrationMaxRowModifHist  Unsigned32,
 148:            tmtRegistrationTrackModifs      INTEGER,
 149:            tmtRegistrationEntryStatus      RowStatus
 150:        }
 151: 
 152:    tmtRegistrationOwner OBJECT-TYPE
 153:        SYNTAX          SnmpAdminString (SIZE(0..32))
 154:        MAX-ACCESS      not-accessible
 155:        STATUS          current
 156:        DESCRIPTION
 157:            "The owner of this entry.  The exact semantics of this
 158:            string are subject to the security policy defined by the
 159:            security administrator.  The value of this variable could
 160:            be name of the NMS user."
 161:        ::= { tmtRegistrationEntry 1 }
 162: 
 163:    tmtRegistrationIndex OBJECT-TYPE
 164:        SYNTAX          Unsigned32 (1..4294967295)
 165:        MAX-ACCESS      not-accessible
 166:        STATUS          current
 167:        DESCRIPTION
 168:            "An arbitrary number that uniquely identifies the entries
 169:            in this table.  To create an entry a management application
 170:            should pick a random number."
 171:        ::= { tmtRegistrationEntry 2 }
 172: 
 173:    tmtRegistrationModifTypeTracked OBJECT-TYPE
 174:        SYNTAX          ModificationType
 175:        MAX-ACCESS      read-create
 176:        STATUS          current
 177:        DESCRIPTION
 178:            "Indicates the type of MIB table data modifications
 179:            that will be recorded.  Any other type of MIB table
 180:            data modifications will be ignored e.g. if the NMS
 181:            has asked to process rowCreation(1) type of modification
 182:            only, then rowDeletion(2) and rowModification(3) will
 183:            be ignored.  By default all types of MIB table data
 184:            modifications are recorded."
 185:        DEFVAL { { rowCreation, rowDeletion, rowModification } }
 186:        ::= { tmtRegistrationEntry 3 }
 187: 
 188:    tmtRegistrationTableID OBJECT-TYPE
 189:        SYNTAX          OBJECT IDENTIFIER
 190:        MAX-ACCESS      read-create
 191:        STATUS          current
 192:        DESCRIPTION
 193:            "The object identifier of the MIB table of interest.
 194:            The changes in its data will be recorded in
 195:            tmtHistTableModifTable and tmtHistRowModifTable
 196:            tables.
 197: 
 198:            This must be the OID of the table-defining SEQUENCE OF
 199:            registration point.
 200: 
 201:            A given tmtRegistrationOwner can register a particular MIB
 202:            table only once."
 203:        ::= { tmtRegistrationEntry 4 }
 204: 
 205:    tmtRegistrationContextName OBJECT-TYPE
 206:        SYNTAX          SnmpAdminString
 207:        MAX-ACCESS      read-create
 208:        STATUS          current
 209:        DESCRIPTION
 210:            "The management context from which to obtain changes in
 211:            tmtRegistrationTableID.
 212: 
 213:            This may be wildcarded by leaving characters off the
 214:            end.  For example use 'Repeater' to wildcard to
 215:            'Repeater1', 'Repeater2', 'Repeater-999.87b', and so
 216:            on.  To indicate such wildcarding is intended,
 217:            tmtRegistrationCtxtNameWildcard must be 'true'.
 218: 
 219:            Each instance that fills the wildcard is independent of any
 220:            additional instances, that is, wildcarded objects operate
 221:            as if there were a separate table entry for each instance
 222:            that fills the wildcard without having to actually predict
 223:            all possible instances ahead of time.
 224: 
 225:            Operation of this feature assumes that the local system has
 226:            a list of available contexts against which to apply the
 227:            wildcard.  If the objects are being read from the local
 228:            system, this is clearly the system's own list of contexts.
 229:            For a remote system a local version of such a list is not
 230:            defined by any current standard and may not be available,
 231:            so this function MAY not be supported."
 232:        DEFVAL { ''H }
 233:        ::= { tmtRegistrationEntry 5 }
 234: 
 235:    tmtRegistrationCtxtNameWildcard OBJECT-TYPE
 236:        SYNTAX          TruthValue
 237:        MAX-ACCESS      read-create
 238:        STATUS          current
 239:        DESCRIPTION
 240:            "Control for whether tmtRegistrationContextName is to
 241:            be treated as fully-specified or wildcarded, with 'true'
 242:            indicating wildcard."
 243:        DEFVAL { false }
 244:        ::= { tmtRegistrationEntry 6 }
 245: 
 246:    tmtRegistrationMaxRowModifHist OBJECT-TYPE
 247:        SYNTAX          Unsigned32 (0..500)
 248:        UNITS           "entries"
 249:        MAX-ACCESS      read-create
 250:        STATUS          current
 251:        DESCRIPTION
 252:            "The upper limit on the number of entries that the
 253:            tmtHistRowModifTable may contain for modifications in the
 254:            MIB table represented by this entry.
 255: 
 256:            A value of 0 will prevent any history from being retained.
 257:            When the number of entries in tmtHistRowModifTable for a
 258:            MIB table represented by this entry exceeds this value,
 259:            the oldest entry will be deleted and a new one will be
 260:            created."
 261:        DEFVAL { 1 }
 262:        ::= { tmtRegistrationEntry 7 }
 263: 
 264:    tmtRegistrationTrackModifs OBJECT-TYPE
 265:        SYNTAX          INTEGER {
 266:            notActive(1),
 267:            ready(2),
 268:            start(3),
 269:            stop(4),
 270:            trackingModifications(5)
 271:            }
 272:        MAX-ACCESS      read-create
 273:        STATUS          current
 274:        DESCRIPTION
 275:            "The control to start/stop tracking modifications.
 276: 
 277:            The value is 'notActive' as long as
 278:            tmtRegistrationEntryStatus is not active.  When
 279:            tmtRegistrationEntryStatus becomes active this object
 280:            goes to 'ready'.
 281: 
 282:            This object can be set to 'start' only when its value is
 283:            'ready'.  Once it is set to 'start', the MIB begins
 284:            monitoring modifications for the MIB table represented by
 285:            this entry and this object goes to 'trackingModifications'.
 286: 
 287:            This object can be set to 'stop' only when its value is
 288:            'trackingModifications'.  Once it is set to 'stop', the MIB
 289:            stops monitoring modifications for the MIB table represented
 290:            by this entry and this object goes to 'ready'."
 291:        ::= { tmtRegistrationEntry 8 }
 292: 
 293:    tmtRegistrationEntryStatus OBJECT-TYPE
 294:        SYNTAX          RowStatus
 295:        MAX-ACCESS      read-create
 296:        STATUS          current
 297:        DESCRIPTION
 298:        "The control that allows creation, modification, and deletion
 299:        of entries.  For detailed rules see the DESCRIPTION for
 300:        tmtRegistrationEntry."
 301:        ::= { tmtRegistrationEntry 9 }
 302: 
 303: 
 304:    tmtRegExcludeObjTable OBJECT-TYPE
 305:        SYNTAX          SEQUENCE OF tmtRegExcludeObjEntry
 305: severe - syntax error, unexpected LOWERCASE_IDENTIFIER, expecting UPPERCASE_IDENTIFIER
 306:        MAX-ACCESS      not-accessible
 307:        STATUS          current
 308:        DESCRIPTION
 309:            "A table to specify the objects in a registered MIB table,
 310:            identified in tmtRegistrationTable, that this MIB WILL NOT
 311:            monitor for modifications.  E.g. if an NMS wants to watch
 312:            changes in all objects in a MIB table except for a few
 313:            objects, the NMS can specify those objects in this table
 314:            indicating this MIB should NOT record changes in these
 315:            objects.
 316: 
 317:            The implementation of this MIB may automatically put fast
 318:            changing MIB objects e.g. Counters in this table so as to
 319:            avoid a storm of modification records due to fast changing
 320:            values of these objects. In this case, those entries will
 321:            be read-only to the NMS."
 322:        ::= { tmtRegistration 2 }
 322: warning - warning: flushing recent incorrect declaration, see previous error(s)
 323: 
 324:    tmtRegExcludeObjEntry OBJECT-TYPE
 324: error - row's parent node must be a table node
 324: warning -
warning: index of row `tmtRegExcludeObjEntry' can exceed OID size limit by 38 subidentifier(s)
 325:        SYNTAX          TmtRegExcludeObjEntry
 326:        MAX-ACCESS      not-accessible
 327:        STATUS          current
 328:        DESCRIPTION
 329:            "Indicates the MIB object the changes in which WILL
 330:            NOT be recorded by this MIB.
 331: 
 332:            If for a registered MIB, identified in tmtRegistrationTable,
 333:            there are no entries in this table, this MIB will record
 334:            changes in all the objects in that table.
 335: 
 336:            Entries in this table may not be changed, created or
 337:            deleted while the corresponding value of
 338:            tmtRegistrationTrackModifs is 'trackingModifications'."
 339:        INDEX   { tmtRegistrationOwner, tmtRegistrationIndex,
 340:                  tmtRegExcludeObjOID }
 341:        ::= { tmtRegExcludeObjTable 1 }
 341: severe - unknown object identifier label `tmtRegExcludeObjTable'
 342: 
 343:    TmtRegExcludeObjEntry ::=
 344:        SEQUENCE {
 345:            tmtRegExcludeObjOID          OBJECT IDENTIFIER,
 346:            tmtRegExcludeObjEntryStatus  RowStatus
 347:        }
 348: 
 349:    tmtRegExcludeObjOID OBJECT-TYPE
 349: minor error - index element `tmtRegExcludeObjOID' of row `tmtRegExcludeObjEntry' should but cannot have a size restriction
 350:        SYNTAX          OBJECT IDENTIFIER
 351:        MAX-ACCESS      not-accessible
 352:        STATUS          current
 353:        DESCRIPTION
 354:            "The object identifier of the MIB object, the changes in
 355:            which, WILL NOT be recorded by this MIB. Please note that
 356:            this is an implicit wildcard i.e. by specifying a MIB
 357:            object here, the changes in all its instances will NOT be
 358:            recorded by this MIB."
 359:        ::= { tmtRegExcludeObjEntry 1 }
 360: 
 361:    tmtRegExcludeObjEntryStatus OBJECT-TYPE
 362:        SYNTAX          RowStatus
 363:        MAX-ACCESS      read-create
 364:        STATUS          current
 365:        DESCRIPTION
 366:            "The control that allows creation, modification, and deletion
 367:            of entries.  For detailed rules see the DESCRIPTION for
 368:            tmtRegExcludeObjEntry."
 369:        ::= { tmtRegExcludeObjEntry 2 }
 370: 
 371: 
 372:    tmtSupportedMIBTable OBJECT-TYPE
 373:        SYNTAX          SEQUENCE OF tmtSupportedMIBEntry
 373: severe - syntax error, unexpected LOWERCASE_IDENTIFIER, expecting UPPERCASE_IDENTIFIER
 374:        MAX-ACCESS      not-accessible
 375:        STATUS          current
 376:        DESCRIPTION
 377:            "A table to specify the list of MIBs, the modifications
 378:            in which could be tracked by this MIB. This MIB table
 379:            is read-only and it is always initialized by the SNMP
 380:            command responder.
 381: 
 382:            If a MIB does not exist in this table, no table in that
 383:            MIB can be registered in the tmtRegistrationTable."
 384:        ::= { tmtRegistration 3 }
 384: warning - warning: flushing recent incorrect declaration, see previous error(s)
 385: 
 386:    tmtSupportedMIBEntry OBJECT-TYPE
 386: error - row's parent node must be a table node
 386: warning -
warning: index of row `tmtSupportedMIBEntry' can exceed OID size limit by 4 subidentifier(s)
 387:        SYNTAX          TmtSupportedMIBEntry
 388:        MAX-ACCESS      not-accessible
 389:        STATUS          current
 390:        DESCRIPTION
 391:            "Indicates the MIB table the changes in which can be
 392:            tracked by this MIB."
 393:        INDEX   { tmtSupportedMIBOID }
 394:        ::= { tmtSupportedMIBTable 1 }
 394: severe - unknown object identifier label `tmtSupportedMIBTable'
 395: 
 396:    TmtSupportedMIBEntry ::=
 397:        SEQUENCE {
 398:            tmtSupportedMIBOID          OBJECT IDENTIFIER
 399:        }
 400: 
 401:    tmtSupportedMIBOID OBJECT-TYPE
 401: minor error - index element `tmtSupportedMIBOID' of row `tmtSupportedMIBEntry' should but cannot have a size restriction
 402:        SYNTAX          OBJECT IDENTIFIER
 403:        MAX-ACCESS      read-only
 404:        STATUS          current
 405:        DESCRIPTION
 406:            "The object identifier of the supported MIB.  This
 407:            must be the OID of the MIB-Module-defining
 408:            MODULE-IDENTITY registration point."
 409:        ::= { tmtSupportedMIBEntry 1 }
 410: 
 411:    -- Notification control table
 412: 
 413:    tmtControlNotificationsTable OBJECT-TYPE
 414:        SYNTAX          SEQUENCE OF tmtControlNotificationsEntry
 414: severe - syntax error, unexpected LOWERCASE_IDENTIFIER, expecting UPPERCASE_IDENTIFIER
 415:        MAX-ACCESS      not-accessible
 416:        STATUS          current
 417:        DESCRIPTION
 418:            "A table to control the notifications sent by this MIB."
 419:        ::= { tmtControl 1 }
 419: warning - warning: flushing recent incorrect declaration, see previous error(s)
 420: 
 421:    tmtControlNotificationsEntry OBJECT-TYPE
 421: error - row's parent node must be a table node
 422:        SYNTAX          TmtControlNotificationsEntry
 423:        MAX-ACCESS      not-accessible
 424:        STATUS          current
 425:        DESCRIPTION
 426:            "Notifications control information for a
 427:    tmtRegistrationOwner.
 428: 
 429:            A new entry is automatically created in this table as soon
 430:            as the first entry is created for a tmtRegistrationOwner
 431:            in tmtRegistrationTable.
 432: 
 433:            Deleting all entries in tmtRegistrationTable for a particular
 434:            tmtRegistrationOwner deletes this entry as well."
 435:        INDEX   { tmtRegistrationOwner }
 436:        ::= { tmtControlNotificationsTable 1 }
 436: severe - unknown object identifier label `tmtControlNotificationsTable'
 437: 
 438:    TmtControlNotificationsEntry ::=
 439:        SEQUENCE {
 440:            tmtControlNotificationsEnabled        TruthValue,
 441:            tmtControlNotificationsSent           Counter32
 442: 
 443:        }
 444: 
 445:    tmtControlNotificationsEnabled OBJECT-TYPE
 446:        SYNTAX          TruthValue
 447:        MAX-ACCESS      read-write
 448:        STATUS          current
 449:        DESCRIPTION
 450:            "Indicates whether tmtTableRowModified notifications
 451:            will or will not be sent when data in a MIB table registered
 452:            by the tmtRegistrationOwner is modified in the SNMP command
 453:            responder on the device.  Disabling notifications does
 454:            not prevent table modified messages from being added to
 455:            tmtHistTableModifTable and tmtHistRowModifTable tables."
 456:        DEFVAL { false }
 457:        ::= { tmtControlNotificationsEntry 1 }
 458: 
 459:    tmtControlNotificationsSent OBJECT-TYPE
 460:        SYNTAX          Counter32
 461:        UNITS           "notifications"
 462:        MAX-ACCESS      read-only
 463:        STATUS          current
 464:        DESCRIPTION
 465:            "The number of tmtTableRowModified notifications for
 466:            changes in the MIB tables registered by tmtRegistrationOwner
 467:            that have been sent.  This number may include notifications
 468:            that were prevented from being transmitted due to reasons
 469:            such as resource limitations and/or non-connectivity.  If
 470:            one is receiving notifications, one can periodically poll
 471:            this object to determine if any notifications were missed.
 472:            If so, a poll of tmtHistTableModifTable and
 473:            tmtHistRowModifTable might be
 474:            appropriate."
 475:        ::= { tmtControlNotificationsEntry 2 }
 476: 
 477: 
 478:    -- MIB tables modifications history table
 479: 
 480:    tmtHistTableModifTable OBJECT-TYPE
 481:        SYNTAX          SEQUENCE OF tmtHistTableModifEntry
 481: severe - syntax error, unexpected LOWERCASE_IDENTIFIER, expecting UPPERCASE_IDENTIFIER
 482:        MAX-ACCESS      not-accessible
 483:        STATUS          current
 484:        DESCRIPTION
 485:            "A table listing the MIB tables from the registered
 486:            MIB tables in tmtRegistrationTable that had their
 487:            data modified.
 488: 
 489:            There will only be one entry per registered MIB table
 490:            that had a modification in its data.  If a registered MIB
 491:            table had many modifications, tmtHistTableLastModified
 492:            of the entry corresponding to that registered table will be
 493:            updated to the time when the last change occurred.
 494: 
 495:            This table allows the NMS to find out, in one operation:
 496: 
 497:            - If data in a given MIB table for an owner has changed.
 498:            - If so, when did the last change occur.
 499:            - And, the count of changes that occurred in the table.
 500:              (Each SNMP Set request, CLI command or an internal process
 501:              state change that causes modification in MIB table data is
 502:              counted as one change. Although they may affect multiple
 503:              rows in a MIB table.)
 504: 
 505:            Using this info the NMS can choose to:
 506: 
 507:            - Do nothing if the last change time is older than
 508:              the time it polled this table last.
 509:            - Check if the count of changes in the MIB table data
 510:              is greater than this value at the previous poll plus
 511:              any modifications done by this NMS.
 512: 
 513:              If this is false, it indicates there have been no
 514:              modifications done by other managers. So, the NMS
 515:              does not have to do anything.
 516:            - Look into the tmtHistRowModifTable to find the rows
 517:              that have changed since the last poll and only download
 518:              the newly modified rows.
 519:            - Or Download the entire table.
 520:        ::= { tmtHist 1 }
 521: 
 522:    tmtHistTableModifEntry OBJECT-TYPE
 523:        SYNTAX          TmtHistTableModifEntry
 524:        MAX-ACCESS      not-accessible
 525:        STATUS          current
 526:        DESCRIPTION
 527:            "An entry for a MIB table registered by an owner that
 528:            had its data modified."
 529:        INDEX   { tmtRegistrationOwner, tmtRegistrationIndex }
 530:        ::= { tmtHistTableModifTable 1 }
 531: 
 532:    TmtHistTableModifEntry ::=
 533:        SEQUENCE {
 534:            tmtHistTableModifCount          Counter32,
 535:            tmtHistTableModifRowMsgsFlushed Counter32,
 536:            tmtHistTableModifLastModified   TimeStamp
 537:        }
 538: 
 539:    tmtHistTableModifCount OBJECT-TYPE
 540:        SYNTAX          Counter32
 541:        MAX-ACCESS      read-only
 542:        STATUS          current
 543:        DESCRIPTION
 544:            "It represents the number of modifications in the data
 545:            of the MIB table represented by tmtRegistrationIndex and
 546:            tmtRegistrationOwner.  A single SNMP Set request, CLI command
 547:            or an internal process state change that caused change in
 548:            the MIB data is considered ONE modification.  Although
 549:            they may affect multiple rows in a MIB table.
 550: 
 551:            This object can be utilized to determine if the NMS will
 552:            need to poll the tmtHistRowModifTable to find out if
 553:            anything has changed.  E.g., if the value of this object
 554:            is 15 at the previous poll by the NMS.  The NMS then
 555:            modified the data in the registered MIB table twice.  At
 556:            the next poll, if the value of this object is greater
 557:            than 17, then the NMS will know that someone else has
 558:            also modified the data of this MIB table and it should
 559:            walk the tmtHistRowModifTable to find out rows that have
 560:            been modified."
 561:        ::= { tmtHistTableModifEntry 1 }
 562: 
 563:    tmtHistTableModifRowMsgsFlushed OBJECT-TYPE
 564:            SYNTAX          Counter32
 565:            UNITS           "messages"
 566:            MAX-ACCESS      read-only
 567:            STATUS          current
 568:            DESCRIPTION
 569:            "The number of entries that have been removed from the
 570:            tmtHistRowModifTable for a MIB table represented by
 571:            tmtRegistrationIndex and tmtRegistrationOwner in order
 572:            to make room for new entries.
 573: 
 574:            This object can be utilized to determine whether your
 575:            polling frequency on tmtHistRowModifTable is fast enough
 576:            and/or the maximum number of entries allowed in the
 576: severe - lexically unexpected character, skipping to end of line
 577:            tmtHistRowModifTable for a MIB table represented by
 578:            tmtRegistrationIndex and tmtRegistrationOwner is large
 579:            enough such that you are not missing modification messages."
 580:        ::= { tmtHistTableModifEntry 2 }
 581: 
 582:    tmtHistTableModifLastModified OBJECT-TYPE
 583:        SYNTAX          TimeStamp
 584:        MAX-ACCESS      read-only
 585:        STATUS          current
 586:        DESCRIPTION
 587:            "The time (in thousandth's of a second since the network
 587: severe - lexically unexpected character, skipping to end of line
 588:            management portion of the system was last re-initialized)
 589:            when the last data modification for a MIB table, registered
 590:            by a particular owner, occurred."
 591:        ::= { tmtHistTableModifEntry 3 }
 592: 
 593: 
 594:    -- Row modifications history table
 595: 
 596:    tmtHistRowModifTable OBJECT-TYPE
 597:        SYNTAX          SEQUENCE OF tmtHistRowModifEntry
 598:        MAX-ACCESS      not-accessible
 599:        STATUS          current
 600:        DESCRIPTION
 601:            "A table listing the rows that have been modified in a
 602:            registered MIB table for a particular owner.  The maximum
 603:            number of entries in this table is controlled by the
 604:            tmtRegistrationMaxRowModifHist object in the
 605:            tmtRegistrationTable."
 606:        ::= { tmtHist 2 }
 607: 
 608:    tmtHistRowModifEntry OBJECT-TYPE
 609:        SYNTAX          TmtHistRowModifEntry
 610:        MAX-ACCESS      not-accessible
 611:        STATUS          current
 612:        DESCRIPTION
 613:            "A modification in a row of a registered MIB table.
 614: 
 615:            If a single SNMP Set request, CLI command or an internal
 616:            process state change caused modifications in multiple
 617:            objects of a single row, only one entry will be created
 618:            here.  But if multiple SNMP Set requests, CLI commands or
 619:            internal process state changes modify different objects
 620:            in one row, multiple entries will be created."
 621:        INDEX   { tmtRegistrationOwner, tmtRegistrationIndex,
 622:                  tmtHistRowModifIndex }
 623:        ::= { tmtHistRowModifTable 1 }
 624: 
 625:    TmtHistRowModifEntry ::=
 626:        SEQUENCE {
 627:            tmtHistRowModifIndex          Unsigned32,
 628:            tmtHistRowModifTimestamp      TimeStamp,
 629:            tmtHistRowModifType           ModificationType,
 630:            tmtHistRowModifInstance       OBJECT IDENTIFIER,
 631:            tmtHistRowModifSource         INTEGER,
 632:            tmtHistRowModifSrcAddressType InetAddressType,
 633:            tmtHistRowModifSourceAddress  InetAddress,
 634:            tmtHistRowModifTerminalUser   SnmpAdminString
 635: 
 636:        }
 637: 
 638:    tmtHistRowModifIndex OBJECT-TYPE
 639:        SYNTAX          Unsigned32 (1..4294967295)
 640:        MAX-ACCESS      not-accessible
 641:        STATUS          current
 642:        DESCRIPTION             "A monotonically increasing integer for
 643:    the sole purpose
 644:            of indexing history entries.  When it reaches the maximum
 645:            value the agent the value back to 1."
 646:        ::= { tmtHistRowModifEntry 1 }
 647: 
 648:    tmtHistRowModifTimestamp OBJECT-TYPE
 649:        SYNTAX          TimeStamp
 650:        MAX-ACCESS      read-only
 651:        STATUS          current
 652:        DESCRIPTION
 653:            "The The value of sysUpTime when the modification in the
 654:            row data of a registered MIB table occurred."
 655:        ::= { tmtHistRowModifEntry 2 }
 656: 
 657:    tmtHistRowModifType OBJECT-TYPE
 658:        SYNTAX          ModificationType
 659:        MAX-ACCESS      read-only
 660:        STATUS          current
 661:        DESCRIPTION
 662:            "The type of modification that has occurred in the
 663:            row data."
 664:        ::= { tmtHistRowModifEntry 3 }
 665: 
 666:    tmtHistRowModifInstance OBJECT-TYPE
 667:        SYNTAX          OBJECT IDENTIFIER
 668:        MAX-ACCESS      read-only
 669:        STATUS          current
 670:        DESCRIPTION
 671:            "This object represents the instance of the row that
 672:            has been modified.
 673: 
 674:            For example: if a row with '171.69.0.0' instance
 674: severe - lexically unexpected character, skipping to end of line
 675:            in ipRouteTable is added/deleted/modified, this
 675: severe - lexically unexpected character, skipping to end of line
 676:            variable will be set to '171.69.0.0'."
 676: severe - lexically unexpected character, skipping to end of line
 677:        ::= { tmtHistRowModifEntry 4 }
 677: warning - warning: flushing recent incorrect declaration, see previous error(s)
 678: 
 679:    tmtHistRowModifSource OBJECT-TYPE
 680:        SYNTAX          INTEGER {
 681:            other(1),
 682:            commandLine(2),
 683:            snmp(3),
 684:            internal(4),
 685:            http(5),
 686:            xml(6)
 687:            }
 688:        MAX-ACCESS      read-only
 689:        STATUS          current
 690:        DESCRIPTION
 691:            "The source of the command that directly or indirectly
 692:            caused the modification in the data of the row of a
 693:            registered MIB table.
 694: 
 695:            other(1)       - None of the types specified below."
 696: 
 697:            commandLine(2) - The ubiquitous Command Line Interface.
 697: severe - syntax error, unexpected LOWERCASE_IDENTIFIER, expecting COLON_COLON_EQUAL
 698: 
 699:            snmp(3)        - The Simple Network Management Protocol
 700:                             interface.
 701: 
 702:            internal(4)    - The MIB data is changed because of changes
 703:                             in the process state e.g., new entries in
 704:                             ipRouteTable are created due to new routes
 705:                             learned by the routing process.
 706: 
 707:            http(5)        - The Hyper Text Transfer Protocol
 708:                             interface.
 709: 
 710:            xml(6)        - The eXtensible Markup Language interface."
 711: 
 712:        ::= { tmtHistRowModifEntry 5 }
 713: 
 714:    tmtHistRowModifSrcAddressType OBJECT-TYPE
 715:        SYNTAX          InetAddressType
 716:        MAX-ACCESS      read-only
 717:        STATUS          current
 718:        DESCRIPTION
 719:            "If tmtHistRowModifSource is 'snmp(3)', 'http(5)' or 'xml(6)'
 719: severe - lexically unexpected character, skipping to end of line
 720:            this object represents the type of address stored in
 721:            tmtHistRowModifSourceAddress."
 722:        ::= { tmtHistRowModifEntry 6 }
 723: 
 724:    tmtHistRowModifSourceAddress OBJECT-TYPE
 725:        SYNTAX          InetAddress
 726:        MAX-ACCESS      read-only
 727:        STATUS          current
 728:        DESCRIPTION
 729:            "If tmtHistRowModifSource is 'snmp(3)', 'http(5)' or 'xml(6),
 729: severe - lexically unexpected character, skipping to end of line
 730:            the internet address of the NMS that did the modification in
 731:            the data of the row of a registered MIB table.  If
 732:            tmtHistRowModifSource is set to 'commandLine(2)', this object
 732: severe - lexically unexpected character, skipping to end of line
 733:            represents the internet address of the VTY terminal. The
 734:    length
 735:            is zero if not available or not applicable."
 736:        ::= { tmtHistRowModifEntry 7 }
 737: 
 738:    tmtHistRowModifTerminalUser OBJECT-TYPE
 739:        SYNTAX          SnmpAdminString (SIZE(0..64))
 740:        MAX-ACCESS      read-only
 741:        STATUS          current
 742:        DESCRIPTION
 743:            "If tmtHistRowModifSource is 'commandLine(2)', 'snmp(3)' with
 743: severe - lexically unexpected character, skipping to end of line
 744:            version 3, 'http(5)' or 'xml(6)' this objects records the
 744: severe - lexically unexpected character, skipping to end of line
 745:    name of
 746:            the user.  The length is zero if not available or not
 747:    applicable."
 748:        ::= { tmtHistRowModifEntry 8 }
 749: 
 750: 
 751:    -- notifications
 752: 
 753:    tmtMIBNotificationsPrefix OBJECT IDENTIFIER
 754:                ::= { tableModifTrackingMIB 2 } tmtMIBNotifications
 755:    OBJECT IDENTIFIER
 756:                ::= { tmtMIBNotificationsPrefix 0 }
 757: 
 758:    tmtTableRowModified NOTIFICATION-TYPE
 759:        OBJECTS {
 760:            tmtRegistrationTableID,
 761:            tmtRegistrationContextName,
 762:            tmtRegistrationCtxtNameWildcard,
 763:            tmtHistRowModifTimestamp,
 764:            tmtHistRowModifType,
 765:            tmtHistRowModifInstance,
 766:            tmtHistRowModifSource,
 767:            tmtHistRowModifSrcAddressType,
 768:            tmtHistRowModifSourceAddress,
 769:            tmtHistRowModifTerminalUser
 770:        }
 771:        STATUS          current
 772:        DESCRIPTION
 773:            "This notification is sent when the data in a
 774:            registered MIB table implemented in the SNMP
 775:            command responder on the device is modified.
 776:            This notification can be enabled/disabled by
 776: severe - lexically unexpected character, skipping to end of line
 777:            the value set in the tmtControlNotificationsEnabled
 778:            object."
 779:        ::= { tmtMIBNotifications 1 }
 780: 
 781:    -- conformance information
 782: 
 783:    tmtMIBConformance OBJECT IDENTIFIER
 784:            ::= { tableModifTrackingMIB 3 } tmtMIBCompliances OBJECT
 785:    IDENTIFIER
 786:            ::= { tmtMIBConformance 1 } tmtMIBGroups   OBJECT IDENTIFIER
 787:            ::= { tmtMIBConformance 2 }
 788: 
 789: 
 790:    -- compliance statements
 791: 
 792:    tmtMIBCompliance MODULE-COMPLIANCE
 793:        STATUS  current
 794:        DESCRIPTION
 795:            "The compliance statement for entities which implement
 796:            the Cisco Table Modification Tracking MIB."
 797:        MODULE  -- this module
 798:            MANDATORY-GROUPS {
 799:                tmtRegistrationGroup,
 800:                tmtHistoryGroup
 801:            }
 802: 
 803:            GROUP tmtControlGroup
 804:            DESCRIPTION
 805:                "This group is required only for entities that
 806:                support configuration of the notification targets
 807:                and enabling/disabling of notifications generation."
 807: severe - lexically unexpected character, skipping to end of line
 808: 
 809:            GROUP tmtNotificationsGroup
 810:            DESCRIPTION
 811:                "This group is required only for entities that
 812:                support generation of tmtTableRowModified
 813:                notifications."
 814:        ::= { tmtMIBCompliances 1 }
 814: warning - warning: flushing recent incorrect declaration, see previous error(s)
 815: 
 816:    -- units of conformance
 817: 
 818:    tmtRegistrationGroup OBJECT-GROUP
 818: warning - warning: current group `tmtRegistrationGroup' is not referenced in this module
 819:        OBJECTS {
 820:            -- MIB table registration objects
 821:            tmtRegistrationModifTypeTracked,
 822:            tmtRegistrationTableID,
 823:            tmtRegistrationContextName,
 824:            tmtRegistrationCtxtNameWildcard,
 825:            tmtRegistrationMaxRowModifHist,
 826:            tmtRegistrationTrackModifs,
 827:            tmtRegistrationEntryStatus,
 828:            -- Supported MIB objects
 829:            tmtSupportedMIBOID,
 830:            -- MIB objects registration objects
 831:            tmtRegExcludeObjEntryStatus
 832:        }
 833:        STATUS          current
 834:        DESCRIPTION
 835:            "A collection of objects providing the table
 836:            and MIB objects registration capability."
 837:        ::= { tmtMIBGroups 1 }
 837: severe - unknown object identifier label `tmtMIBGroups'
 838: 
 839:    tmtControlGroup OBJECT-GROUP
 839: warning - warning: current group `tmtControlGroup' is not referenced in this module
 840:        OBJECTS {
 841:            tmtControlNotificationsEnabled,
 842:            tmtControlNotificationsSent
 843:        }
 844:        STATUS          current
 845:        DESCRIPTION
 846:            "A collection of objects providing the control
 847:            (enable/disable) of Table Modification Tracking
 848:            MIB notifications."
 849:        ::= { tmtMIBGroups 2 }
 850: 
 851:    tmtHistoryGroup OBJECT-GROUP
 851: warning - warning: current group `tmtHistoryGroup' is not referenced in this module
 852:        OBJECTS {
 853:            -- Table modification history objects
 854:            tmtHistTableModifCount,
 854: severe - unknown object identifier label `tmtHistTableModifCount'
 855:            tmtHistTableModifRowMsgsFlushed,
 855: severe - unknown object identifier label `tmtHistTableModifRowMsgsFlushed'
 856:            tmtHistTableModifLastModified,
 856: severe - unknown object identifier label `tmtHistTableModifLastModified'
 857:            -- Row modification history objects
 858:            tmtHistRowModifTimestamp,
 858: severe - unknown object identifier label `tmtHistRowModifTimestamp'
 859:            tmtHistRowModifType,
 859: severe - unknown object identifier label `tmtHistRowModifType'
 860:            tmtHistRowModifInstance,
 860: severe - unknown object identifier label `tmtHistRowModifInstance'
 861:            tmtHistRowModifSource,
 861: severe - unknown object identifier label `tmtHistRowModifSource'
 862:            tmtHistRowModifSrcAddressType,
 862: severe - unknown object identifier label `tmtHistRowModifSrcAddressType'
 863:            tmtHistRowModifSourceAddress,
 863: severe - unknown object identifier label `tmtHistRowModifSourceAddress'
 864:            tmtHistRowModifTerminalUser
 865:        }
 865: severe - unknown object identifier label `tmtHistRowModifTerminalUser'
 866:        STATUS          current
 867:        DESCRIPTION
 868:            "A collection of objects keeping the history
 869:            of changes in the data of a MIB table."
 870:        ::= { tmtMIBGroups 3 }
 871: 
 872:    tmtNotificationsGroup NOTIFICATION-GROUP
 872: warning - warning: current group `tmtNotificationsGroup' is not referenced in this module
 873:        NOTIFICATIONS { tmtTableRowModified }
 873: severe - unknown object identifier label `tmtTableRowModified'
 874:        STATUS          current
 875:        DESCRIPTION
 876:            "The notification generated by the Table
 877:            Modification Tracking MIB."
 878:        ::= { tmtMIBGroups 4 }
 879: 
 880:    END
 881: 
 882: -- 
 883: --    Copyright (C) The Internet Society (2002).  All Rights Reserved.
 884: -- 
 885: --    This document and translations of it may be copied and furnished to
 886: --    others, and derivative works that comment on or otherwise explain it
 887: --    or assist in its implementation may be prepared, copied, published
 888: --    and distributed, in whole or in part, without restriction of any
 889: --    kind, provided that the above copyright notice and this paragraph are
 890: --    included on all such copies and derivative works.  However, this
 891: --    document itself may not be modified in any way, such as by removing
 892: --    the copyright notice or references to the Internet Society or other
 893: --    Internet organizations, except as needed for the purpose of
 894: --    developing Internet standards in which case the procedures for
 895: --    copyrights defined in the Internet Standards process must be
 896: --    followed, or as required to translate it into languages other than
 897: --    English.
 898: -- 
 899: --    The limited permissions granted above are perpetual and will not be
 900: --    revoked by the Internet Society or its successors or assigns.
 901: -- 
 902: --    This document and the information contained herein is provided on an
 903: --    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
 904: --    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
 905: --    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
 906: --    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
 907: --    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 908: