EZ5 MIB Catalog

DSMON-MIB

2002-05-31

Download DSMON-MIB.txt Open DSMON-MIB.txt in a new tab

This module defines Remote Monitoring MIB extensions for Differentiated Services enabled networks. RMON DIFFSERV DSCP statistics * Per Counter Aggregation Group * Per Protocol Per Counter Aggregation Group * Per Counter Aggregation Group Per Host * Per Counter Aggregation Group Per Host-Pair In order to maintain the RMON 'look-and-feel' and semantic consistency, some of the text from the RMON-2 and HC-RMON MIBs by Steve Waldbusser has been adapted for use in this MIB.

SCALARS (5) · TABLES (18)

Scalars (5)

NameOID
dsmonMaxAggGroups1.3.6.1.2.1.16.26.1.1.1
dsmonAggControlLocked1.3.6.1.2.1.16.26.1.1.2
dsmonAggControlChanges1.3.6.1.2.1.16.26.1.1.3
dsmonAggControlLastChangeTime1.3.6.1.2.1.16.26.1.1.4
dsmonCapabilities1.3.6.1.2.1.16.26.1.5.1

Tables (18)

NameOID
dsmonAggControlTable1.3.6.1.2.1.16.26.1.1.5
dsmonAggProfileTable1.3.6.1.2.1.16.26.1.1.6
dsmonAggGroupTable1.3.6.1.2.1.16.26.1.1.7
dsmonStatsControlTable1.3.6.1.2.1.16.26.1.2.1
dsmonStatsTable1.3.6.1.2.1.16.26.1.2.2
dsmonPdistCtlTable1.3.6.1.2.1.16.26.1.3.1
dsmonPdistStatsTable1.3.6.1.2.1.16.26.1.3.2
dsmonPdistTopNCtlTable1.3.6.1.2.1.16.26.1.3.3
dsmonPdistTopNTable1.3.6.1.2.1.16.26.1.3.4
dsmonHostCtlTable1.3.6.1.2.1.16.26.1.4.1
dsmonHostTable1.3.6.1.2.1.16.26.1.4.2
dsmonHostTopNCtlTable1.3.6.1.2.1.16.26.1.4.3
dsmonHostTopNTable1.3.6.1.2.1.16.26.1.4.4
dsmonMatrixCtlTable1.3.6.1.2.1.16.26.1.6.1
dsmonMatrixSDTable1.3.6.1.2.1.16.26.1.6.2
dsmonMatrixDSTable1.3.6.1.2.1.16.26.1.6.3
dsmonMatrixTopNCtlTable1.3.6.1.2.1.16.26.1.6.4
dsmonMatrixTopNTable1.3.6.1.2.1.16.26.1.6.5

END OF TOC

Scalar details

dsmonMaxAggGroups

1.3.6.1.2.1.16.26.1.1.1

Integer32 (2..64)

The maximum number of counter aggregation groups that this agent can support. The agent will allow this number of distinct groups to be configured in the dsmonAggProfileTable, numbered from '0' to 'dsmonMaxAggGroups - 1', for each counter aggregation profile entry supported by the agent. The agent MUST NOT lower this value during system operation, and SHOULD set this object to an appropriate value during system initialization.

dsmonAggControlLocked

1.3.6.1.2.1.16.26.1.1.2

TruthValue1 = true2 = falseRepresents a boolean value. · Integer32

Controls the setup of counter aggregation groups for this agent. If this object contains the value 'true', then write access to the objects in the dsmonAggControlTable (except the dsmonAggControlOwner object), dsmonAggProfileTable, and dsmonAggGroupTable is not permitted, and data collection is possible. This object only controls write access to these MIB objects. The DSMON data collection control tables (e.g., dsmonHostCtlTable) can be configured at any time, regardless of the value of this object. If this object contains the value 'false', write access to the objects in the dsmonAggControlTable, dsmonAggProfileTable, and dsmonAggGroupTable is permitted, and data collection is not possible. In addition, all objects in all DSMON data tables (e.g., dsmonStatsTable) shall be deleted. An agent is not required to process SNMP Set Requests for this object in conjunction with other objects from this MIB. This is intended to simplify the processing of Set Requests for tables such as the dsmonAggProfileTable, by eliminating the possibility that a single Set PDU will contain multiple varbinds which are in conflict, such as a PDU which both modifies the dsmonAggProfileTable and locks the dsmonAggProfileTable at the same time. Note that the agent is not required to validate the entire counter aggregation configuration when an attempt is made to transition an instance of this object from 'true' to 'false'. That validation is done if and when a DSMON data collection is activated. An agent is required to reactivate any suspended data collections when this object transitions to 'true', Each active data control entry (e.g., dsmonStatsControlEntry), will be validated with respect to the new counter aggregation configuration. If the counter aggregation profile referenced in the data collection is valid, then that collection will be restarted. Otherwise, the RowStatus object (e.g., dsmonStatsControlStatus) will be set to 'notReady' for that collection control entry.

dsmonAggControlChanges

1.3.6.1.2.1.16.26.1.1.3

Counter32

This object counts the number of times the value of the dsmonAggControlLocked object has changed. A management station can use this object to detect if counters in the DSMON data tables (e.g., dsmonStatsEntry) have been deleted and recreated between polls. This object shall be incremented by one each time the dsmonAggControlLocked object changes from 'false' to 'true', or from 'true' to 'false'.

dsmonAggControlLastChangeTime

1.3.6.1.2.1.16.26.1.1.4

TimeStampThe value of the sysUpTime object at which a specific occurrence happened. The specific occurrence must be defined in the description of any object defined using this type. If sysUpTime is reset to zero as a result of a re- initialization of the network management (sub)system, then the values of all TimeStamp objects are also reset. However, after approximately 497 days without a re- initialization, the sysUpTime object will reach 2^^32-1 and then increment around to zero; in this case, existing values of TimeStamp objects do not change. This can lead to ambiguities in the value of TimeStamp objects. · TimeTicks

This object identifies the value of sysUpTime at the moment the dsmonAggControlLocked object was last modified. A management station can use this object to detect if counters in the DSMON data tables (e.g., dsmonStatsEntry) have been deleted and recreated between polls. This object shall be updated with the current value of sysUpTime, if the dsmonAggControlLocked object changes from 'false' to 'true', or from 'true' to 'false'. Upon system initialization, this object shall contain the value zero.

dsmonCapabilities

1.3.6.1.2.1.16.26.1.5.1

BITS

This object provides an indication of the DSMON groups supported by the agent. If a bit is set, then the agent implements all of the objects in the DSMON object group, where bit 'n' represents the MIB group identified by the OBJECT IDENTIFIER value { dsmonGroups n+1 }.

Table details

dsmonAggControlTable

1.3.6.1.2.1.16.26.1.1.5

Index: dsmonAggControlIndex

This table provides an overall description and control point for all dsmonAggProfileEntries with the same dsmonAggControlIndex value. A management application SHOULD create a counter aggregation profile by first creating and activating an entry in this table. This will cause the agent to create a set of 64 dsmonAggProfileEntries on behalf of this control entry. An application can then set the individual counter aggregation group assignments for each of the 64 DSCP values, This table MUST NOT be modified if the dsmonAggControlLocked object is equal to 'true'. Note that an agent MAY choose to limit the actual number of entries which may be created in this table, and (independently) the number of counter aggregation profiles which may be applied to a particular data source. In this case, the agent SHOULD return an error-status of 'resourceUnavailable(13)', as per section 4.2.5 of the 'Protocol Operations for SNMPv2' specification [RFC1905]. The agent SHOULD support non-volatile configuration of this table, and upon system initialization, the table SHOULD be initialized with the saved values. Otherwise, each potential counter aggregation group description string SHOULD contain the empty string.

dsmonAggControlIndex

1.3.6.1.2.1.16.26.1.1.5.1.1

DsmonCounterAggProfileIndexThis TC describes a data type which identifies a DSMON counter aggregation profile, which is a set of counter aggregation group assignments for each of the 64 DSCP values, for a particular statistical collection. (1..2147483647) · Integer32

An arbitrary integer index value used to identify the counter aggregation profile specified by this control entry.

dsmonAggControlDescr

1.3.6.1.2.1.16.26.1.1.5.1.2

SnmpAdminStringAn octet string containing administrative information, preferably in human-readable form. To facilitate internationalization, this information is represented using the ISO/IEC IS 10646-1 character set, encoded as an octet string using the UTF-8 transformation format described in [RFC2279]. Since additional code points are added by amendments to the 10646 standard from time to time, implementations must be prepared to encounter any code point from 0x00000000 to 0x7fffffff. Byte sequences that do not correspond to the valid UTF-8 encoding of a code point or are outside this range are prohibited. The use of control codes should be avoided. When it is necessary to represent a newline, the control code sequence CR LF should be used. The use of leading or trailing white space should be avoided. For code points not directly supported by user interface hardware or software, an alternative means of entry and display, such as hexadecimal, may be provided. For information encoded in 7-bit US-ASCII, the UTF-8 encoding is identical to the US-ASCII encoding. UTF-8 may require multiple bytes to represent a single character / code point; thus the length of this object in octets may be different from the number of characters encoded. Similarly, size constraints refer to the number of encoded octets, not the number of characters represented by an encoding. Note that when this TC is used for an object that is used or envisioned to be used as an index, then a SIZE restriction MUST be specified so that the number of sub-identifiers for any object instance does not exceed the limit of 128, as defined by [RFC3416]. Note that the size of an SnmpAdminString object is measured in octets, not characters. SIZE (0..64) · OCTET STRING · hint 255t

An administratively assigned description of the counter aggregation profile identified by this entry. Upon first creation of an instance of this object, the agent SHOULD set this object to the empty string. If the agent supports non-volatile storage, then this object SHOULD be re-initialized with its stored value after a system reboot. This object MUST NOT be modified if the associated dsmonAggControlStatus object is equal to 'active', or the dsmonAggControlLocked object is equal to 'true'.

dsmonAggControlOwner

1.3.6.1.2.1.16.26.1.1.5.1.3

OwnerStringThis data type is used to model an administratively assigned name of the owner of a resource. Implementations must accept values composed of well-formed NVT ASCII sequences. In addition, implementations should accept values composed of well-formed UTF-8 sequences. It is suggested that this name contain one or more of the following: IP address, management station name, network manager's name, location, or phone number. In some cases the agent itself will be the owner of an entry. In these cases, this string shall be set to a string starting with 'monitor'. SNMP access control is articulated entirely in terms of the contents of MIB views; access to a particular SNMP object instance depends only upon its presence or absence in a particular MIB view and never upon its value or the value of related object instances. Thus, objects of this type afford resolution of resource contention only among cooperating managers; they realize no access control function with respect to uncooperative parties. SIZE (0..127) · OCTET STRING

The entity that configured this entry and is therefore using the resources assigned to it.

dsmonAggControlStatus

1.3.6.1.2.1.16.26.1.1.5.1.4

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

The status of this row. An entry MUST NOT exist in the active state unless all objects in the entry have an appropriate value. Upon setting this object to active(1), the agent will create a complete set of 64 associated entries in the dsmonAggProfileTable. If this object is not equal to active(1), all associated entries in the dsmonAggProfileTable shall be deleted. This object MUST NOT be modified if the dsmonAggControlLocked object is equal to 'true'.

dsmonAggProfileTable

1.3.6.1.2.1.16.26.1.1.6

Index: dsmonAggControlIndex · dsmonAggProfileDSCP

Controls the setup of counter aggregation profiles for this agent. For each such profile, every DSCP value MUST be configured into exactly one counter aggregation group. This table MUST NOT be modified if the dsmonAggControlLocked object is equal to 'true'. The agent will create a set of 64 entries in this table (with the same dsmonAggControlIndex value) when the associated dsmonAggControlEntry is activated. If the agent supports non-volatile configuration of this table, then upon system initialization, this table SHOULD be initialized with the saved values.

dsmonAggProfileDSCP

1.3.6.1.2.1.16.26.1.1.6.1.1

DscpA Differentiated Services Code-Point that may be used for marking a traffic stream.Reference: RFC 2474, RFC 2780 (0..63) · Integer32 · hint d

The specific DSCP value for the DSCP counter which is configured in a counter aggregation group by this entry.

dsmonAggGroupIndex

1.3.6.1.2.1.16.26.1.1.6.1.2

DsmonCounterAggGroupIndexThis TC describes a data type which identifies a DSMON counter aggregation group, which is an arbitrary grouping of conceptual counters, for monitoring purposes only. The range for this data type begins with zero (instead of one), to allow for a direct mapping between counter indexing schemes that start at zero (e.g. DSCP values in packets) and counter aggregation group values. (0..2147483647) · Integer32

The counter aggregation group which contains this DSCP value. Upon creation of a new sub-tree (set of 64 entries with the same dsmonAggControlIndex value) in this table, the agent SHOULD initialize all related instances of this object to the value zero. This object MUST NOT be modified if the dsmonAggControlLocked object is equal to 'true'.

dsmonAggGroupTable

1.3.6.1.2.1.16.26.1.1.7

Index: dsmonAggControlIndex · dsmonAggGroupIndex

This table provides a description of each counter aggregation group configured on this system. Note that the semantics of a particular counter aggregation group are only relevant within the scope of a particular counter aggregation profile. This table MUST NOT be modified if the dsmonAggControlLocked object is equal to 'true'. Note that an agent MAY choose to limit the actual number of entries which may be created in this table, and (independently) the number of counter aggregation profiles which may be applied to a particular data source. In this case, the agent SHOULD return an error-status of 'resourceUnavailable(13)', as per section 4.2.5 of the 'Protocol Operations for SNMPv2' specification [RFC1905]. If the agent supports non-volatile configuration of this table, then upon system initialization, this table SHOULD be initialized with the saved values. Otherwise, each potential counter aggregation group description string SHOULD contain the empty string. An agent SHOULD allow entries to be created or modified in this table, even if the specified dsmonAggControlIndex value does not identify a valid dsmonAggControlEntry or a complete set of valid dsmonAggProfileEntries, to reduce row creation order dependencies.

dsmonAggGroupDescr

1.3.6.1.2.1.16.26.1.1.7.1.1

SnmpAdminStringAn octet string containing administrative information, preferably in human-readable form. To facilitate internationalization, this information is represented using the ISO/IEC IS 10646-1 character set, encoded as an octet string using the UTF-8 transformation format described in [RFC2279]. Since additional code points are added by amendments to the 10646 standard from time to time, implementations must be prepared to encounter any code point from 0x00000000 to 0x7fffffff. Byte sequences that do not correspond to the valid UTF-8 encoding of a code point or are outside this range are prohibited. The use of control codes should be avoided. When it is necessary to represent a newline, the control code sequence CR LF should be used. The use of leading or trailing white space should be avoided. For code points not directly supported by user interface hardware or software, an alternative means of entry and display, such as hexadecimal, may be provided. For information encoded in 7-bit US-ASCII, the UTF-8 encoding is identical to the US-ASCII encoding. UTF-8 may require multiple bytes to represent a single character / code point; thus the length of this object in octets may be different from the number of characters encoded. Similarly, size constraints refer to the number of encoded octets, not the number of characters represented by an encoding. Note that when this TC is used for an object that is used or envisioned to be used as an index, then a SIZE restriction MUST be specified so that the number of sub-identifiers for any object instance does not exceed the limit of 128, as defined by [RFC3416]. Note that the size of an SnmpAdminString object is measured in octets, not characters. SIZE (0..64) · OCTET STRING · hint 255t

An administratively assigned description of the counter aggregation group identified by this entry. Upon first creation of an instance of this object, the agent SHOULD set this object to the empty string. This object MUST NOT be modified if the associated dsmonAggGroupStatus object is equal to 'active', or the dsmonAggControlLocked object is equal to 'true'.

dsmonAggGroupStatus

1.3.6.1.2.1.16.26.1.1.7.1.2

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

The status of this row. An entry MUST NOT exist in the active state unless all objects in the entry have an appropriate value. This object MUST NOT be modified if the dsmonAggControlLocked object is equal to 'true'.

dsmonStatsControlTable

1.3.6.1.2.1.16.26.1.2.1

Index: dsmonStatsControlIndex

Controls the setup of per data source per counter aggregation group distribution statistics. Note that an agent MAY choose to limit the actual number of entries which may be created in this table. In this case, the agent SHOULD return an error-status of 'resourceUnavailable(13)', as per section 4.2.5 of the 'Protocol Operations for SNMPv2' specification [RFC1905].

dsmonStatsControlIndex

1.3.6.1.2.1.16.26.1.2.1.1.1

Integer32 (1..65535)

An arbitrary and unique index for this dsmonStatsControlEntry.

dsmonStatsControlDataSource

1.3.6.1.2.1.16.26.1.2.1.1.2

DataSourceIdentifies the source of the data that the associated function is configured to analyze. This source can be any interface on this device. In order to identify a particular interface, this object shall identify the instance of the ifIndex object, defined in [RFC2863], for the desired interface. For example, if an entry were to receive data from interface #1, this object would be set to ifIndex.1. · OBJECT IDENTIFIER

The data source of this per protocol per counter aggregation group distribution. Note that only packets that contain a network protocol encapsulation which contains a DS field [RFC2474] will be counted in this table. This object MUST NOT be modified if the associated dsmonStatsControlStatus object is equal to active(1).

dsmonStatsControlAggProfile

1.3.6.1.2.1.16.26.1.2.1.1.3

DsmonCounterAggProfileIndexThis TC describes a data type which identifies a DSMON counter aggregation profile, which is a set of counter aggregation group assignments for each of the 64 DSCP values, for a particular statistical collection. (1..2147483647) · Integer32

The dsmonAggControlIndex value identifying the counter aggregation profile which should be used on behalf of this dsmonStatsControlEntry. The associated dsmonAggControlEntry and dsmonAggProfileEntries, identified by the same dsmonAggControlIndex index value, MUST be active in order for this entry to remain active. It is possible for the counter aggregation configuration to change from a valid to invalid state for this dsmonStats collection. In this case, the associated dsmonStatsControlStatus object will be changed to the 'notReady' state, and data collection will not occur on behalf of this control entry. Note that an agent MAY choose to limit the actual number of counter aggregation profiles which may be applied to a particular data source. This object MUST NOT be modified if the associated dsmonStatsControlStatus object is equal to active(1).

dsmonStatsControlDroppedFrames

1.3.6.1.2.1.16.26.1.2.1.1.4

Counter32 · frames

The total number of frames which were received by the probe and therefore not accounted for in the *StatsDropEvents, but for which the probe chose not to count for this entry for whatever reason. Most often, this event occurs when the probe is out of some resources and decides to shed load from this collection. This count does not include packets that were not counted because they had MAC-layer errors. Note that, unlike the dropEvents counter, this number is the exact number of frames dropped.

dsmonStatsControlCreateTime

1.3.6.1.2.1.16.26.1.2.1.1.5

LastCreateTimeThis TC describes an object that stores the value of the sysUpTime object at the last time its entry was created. This can be used for polling applications to determine that an entry has been deleted and re-created between polls, causing an otherwise undetectable discontinuity in the data. If sysUpTime is reset to zero as a result of a re- initialization of the network management (sub)system, then the values of all LastCreateTime objects are also reset. However, after approximately 497 days without a re- initialization, the sysUpTime object will reach 2^^32-1 and then increment to zero; in this case, existing values of TimeStamp objects do not change. This can lead to ambiguities in the value of TimeStamp objects. · TimeTicks

The value of sysUpTime when this control entry was last activated. This can be used by the management station to detect if the table has been deleted and recreated between polls.

dsmonStatsControlOwner

1.3.6.1.2.1.16.26.1.2.1.1.6

OwnerStringThis data type is used to model an administratively assigned name of the owner of a resource. Implementations must accept values composed of well-formed NVT ASCII sequences. In addition, implementations should accept values composed of well-formed UTF-8 sequences. It is suggested that this name contain one or more of the following: IP address, management station name, network manager's name, location, or phone number. In some cases the agent itself will be the owner of an entry. In these cases, this string shall be set to a string starting with 'monitor'. SNMP access control is articulated entirely in terms of the contents of MIB views; access to a particular SNMP object instance depends only upon its presence or absence in a particular MIB view and never upon its value or the value of related object instances. Thus, objects of this type afford resolution of resource contention only among cooperating managers; they realize no access control function with respect to uncooperative parties. SIZE (0..127) · OCTET STRING

The entity that configured this entry and is therefore using the resources assigned to it.

dsmonStatsControlStatus

1.3.6.1.2.1.16.26.1.2.1.1.7

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

The status of this row. An entry MUST NOT exist in the active state unless all objects in the entry have an appropriate value. If this object is not equal to active(1), all associated entries in the dsmonStatsTable shall be deleted.

dsmonStatsTable

1.3.6.1.2.1.16.26.1.2.2

Index: dsmonStatsControlIndex · dsmonAggGroupIndex

A list of information on counter aggregation group usage for each monitored data source. The following table defines per counter aggregation group statistics for full and/or half-duplex links as well as high capacity links. For half-duplex links, or full-duplex-capable links operating in half-duplex mode, the dsmonStatsIn* objects shall be used and the dsmonStatsOut* objects will not increment. For full-duplex links, the dsmonStatsOut* objects will be present. Whenever possible, the probe SHOULD count packets moving away from the closest terminating equipment as output packets. Failing that, the probe SHOULD count packets moving away from the DTE as output packets. If the dsmonAggControlLocked object is equal to 'false', then all entries in this table will be deleted and the agent will not process packets on behalf of any dsmonStatsControlEntry.

dsmonStatsInPkts

1.3.6.1.2.1.16.26.1.2.2.1.1

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32 · packets

The number of packets using one of the DSCP values in the indicated counter aggregation group, received on a half- duplex link or on the inbound connection of a full-duplex link.

dsmonStatsInOctets

1.3.6.1.2.1.16.26.1.2.2.1.2

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32 · octets

The number of octets in packets, using one of the DSCP values in the indicated counter aggregation group, received on a half-duplex link or on the inbound connection of a full-duplex link.

dsmonStatsInOvflPkts

1.3.6.1.2.1.16.26.1.2.2.1.3

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32

The number of times the associated dsmonStatsInPkts counter has overflowed. Note that this object will only be instantiated if the associated dsmonStatsInHCPkts object is also instantiated for a particular dataSource.

dsmonStatsInOvflOctets

1.3.6.1.2.1.16.26.1.2.2.1.4

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32

The number of times the associated dsmonStatsInOctets counter has overflowed. Note that this object will only be instantiated if the associated dsmonStatsInHCOctets object is also instantiated for a particular dataSource.

dsmonStatsInHCPkts

1.3.6.1.2.1.16.26.1.2.2.1.5

ZeroBasedCounter64This TC describes an object which counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^64 is reached. Provided that an application discovers the new object within the minimum time to wrap it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. Note that this textual convention does not retain all the semantics of the Counter64 base type. Specifically, a Counter64 has an arbitrary initial value, but objects defined with this TC are required to start at the value zero. This behavior is not likely to have any adverse effects on management applications which are expecting Counter64 semantics. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64 · packets

The 64-bit version of the dsmonStatsInPkts object. Note that this object will only be instantiated if the RMON agent supports High Capacity monitoring for a particular dataSource.

dsmonStatsInHCOctets

1.3.6.1.2.1.16.26.1.2.2.1.6

ZeroBasedCounter64This TC describes an object which counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^64 is reached. Provided that an application discovers the new object within the minimum time to wrap it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. Note that this textual convention does not retain all the semantics of the Counter64 base type. Specifically, a Counter64 has an arbitrary initial value, but objects defined with this TC are required to start at the value zero. This behavior is not likely to have any adverse effects on management applications which are expecting Counter64 semantics. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64 · octets

The 64-bit version of the dsmonStatsInOctets object. Note that this object will only be instantiated if the RMON agent supports High Capacity monitoring for a particular dataSource.

dsmonStatsOutPkts

1.3.6.1.2.1.16.26.1.2.2.1.7

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32 · packets

The number of packets using one of the DSCP values in the indicated counter aggregation group, received on a full- duplex link in the direction of the network.

dsmonStatsOutOctets

1.3.6.1.2.1.16.26.1.2.2.1.8

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32 · octets

The number of octets in packets, using one of the DSCP values in the indicated counter aggregation group, received on a full-duplex link in the direction of the network.

dsmonStatsOutOvflPkts

1.3.6.1.2.1.16.26.1.2.2.1.9

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32

The number of times the associated dsmonStatsOutPkts counter has overflowed. Note that this object will only be instantiated if the associated dsmonStatsOutHCPkts object is also instantiated for a particular dataSource.

dsmonStatsOutOvflOctets

1.3.6.1.2.1.16.26.1.2.2.1.10

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32

The number of times the associated dsmonStatsOutOctets counter has overflowed. Note that this object will only be instantiated if the associated dsmonStatsOutHCOctets object is also instantiated for a particular dataSource.

dsmonStatsOutHCPkts

1.3.6.1.2.1.16.26.1.2.2.1.11

ZeroBasedCounter64This TC describes an object which counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^64 is reached. Provided that an application discovers the new object within the minimum time to wrap it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. Note that this textual convention does not retain all the semantics of the Counter64 base type. Specifically, a Counter64 has an arbitrary initial value, but objects defined with this TC are required to start at the value zero. This behavior is not likely to have any adverse effects on management applications which are expecting Counter64 semantics. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64 · packets

The 64-bit version of the dsmonStatsOutPkts object. Note that this object will only be instantiated if the RMON agent supports High Capacity monitoring for a particular dataSource.

dsmonStatsOutHCOctets

1.3.6.1.2.1.16.26.1.2.2.1.12

ZeroBasedCounter64This TC describes an object which counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^64 is reached. Provided that an application discovers the new object within the minimum time to wrap it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. Note that this textual convention does not retain all the semantics of the Counter64 base type. Specifically, a Counter64 has an arbitrary initial value, but objects defined with this TC are required to start at the value zero. This behavior is not likely to have any adverse effects on management applications which are expecting Counter64 semantics. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64 · octets

The 64-bit version of the dsmonStatsOutOctets object. Note that this object will only be instantiated if the RMON agent supports High Capacity monitoring for a particular dataSource.

dsmonPdistCtlTable

1.3.6.1.2.1.16.26.1.3.1

Index: dsmonPdistCtlIndex

Controls the setup of per application per counter aggregation group distribution statistics. Note that an agent MAY choose to limit the actual number of entries which may be created in this table. In this case, the agent SHOULD return an error-status of 'resourceUnavailable(13)', as per section 4.2.5 of the 'Protocol Operations for SNMPv2' specification [RFC1905].

dsmonPdistCtlIndex

1.3.6.1.2.1.16.26.1.3.1.1.1

Integer32 (1..65535)

An arbitrary and unique index for this dsmonPdistCtlEntry.

dsmonPdistCtlDataSource

1.3.6.1.2.1.16.26.1.3.1.1.2

DataSourceIdentifies the source of the data that the associated function is configured to analyze. This source can be any interface on this device. In order to identify a particular interface, this object shall identify the instance of the ifIndex object, defined in [RFC2863], for the desired interface. For example, if an entry were to receive data from interface #1, this object would be set to ifIndex.1. · OBJECT IDENTIFIER

The source of data for the this per protocol counter aggregation group distribution. This object MUST NOT be modified if the associated dsmonPdistCtlStatus object is equal to active(1).

dsmonPdistCtlAggProfile

1.3.6.1.2.1.16.26.1.3.1.1.3

DsmonCounterAggProfileIndexThis TC describes a data type which identifies a DSMON counter aggregation profile, which is a set of counter aggregation group assignments for each of the 64 DSCP values, for a particular statistical collection. (1..2147483647) · Integer32

The dsmonAggControlIndex value identifying the counter aggregation profile which should be used on behalf of this dsmonPdistCtlEntry. The associated dsmonAggControlEntry and dsmonAggProfileEntries, identified by the same dsmonAggControlIndex index value, MUST be active in order for this entry to remain active. It is possible for the counter aggregation configuration to change from a valid to invalid state for this dsmonPdist collection. In this case, the associated dsmonPdistCtlStatus object will be changed to the 'notReady' state, and data collection will not occur on behalf of this control entry. Note that an agent MAY choose to limit the actual number of counter aggregation profiles which may be applied to a particular data source. This object MUST NOT be modified if the associated dsmonPdistCtlStatus object is equal to active(1).

dsmonPdistCtlMaxDesiredEntries

1.3.6.1.2.1.16.26.1.3.1.1.4

Integer32 (-1 | 1..2147483647)

The maximum number of entries that are desired in the dsmonPdistStatsTable on behalf of this control entry. The probe will not create more than this number of associated entries in the table, but MAY choose to create fewer entries in this table for any reason including the lack of resources. If this value is set to -1, the probe MAY create any number of entries in this table. This object MUST NOT be modified if the associated dsmonPdistCtlStatus object is equal to active(1).

dsmonPdistCtlDroppedFrames

1.3.6.1.2.1.16.26.1.3.1.1.5

Counter32 · frames

The total number of frames which were received by the probe and therefore not accounted for in the *StatsDropEvents, but for which the probe chose not to count for this entry for whatever reason. Most often, this event occurs when the probe is out of some resources and decides to shed load from this collection. This count does not include packets that were not counted because they had MAC-layer errors. Note that, unlike the dropEvents counter, this number is the exact number of frames dropped.

dsmonPdistCtlInserts

1.3.6.1.2.1.16.26.1.3.1.1.6

Counter32 · table entries

The number of times a dsmonPdist entry has been inserted into the dsmonPdistTable. If an entry is inserted, then deleted, and then inserted, this counter will be incremented by 2. To allow for efficient implementation strategies, agents MAY delay updating this object for short periods of time. For example, an implementation strategy may allow internal data structures to differ from those visible via SNMP for short periods of time. This counter may reflect the internal data structures for those short periods of time. Note that the table size can be determined by subtracting dsmonPdistCtlDeletes from dsmonPdistCtlInserts.

dsmonPdistCtlDeletes

1.3.6.1.2.1.16.26.1.3.1.1.7

Counter32 · table entries

The number of times a dsmonPdist entry has been deleted from the dsmonPdist table (for any reason). If an entry is deleted, then inserted, and then deleted, this counter will be incremented by 2. To allow for efficient implementation strategies, agents MAY delay updating this object for short periods of time. For example, an implementation strategy may allow internal data structures to differ from those visible via SNMP for short periods of time. This counter may reflect the internal data structures for those short periods of time. Note that the table size can be determined by subtracting dsmonPdistCtlDeletes from dsmonPdistCtlInserts.

dsmonPdistCtlCreateTime

1.3.6.1.2.1.16.26.1.3.1.1.8

LastCreateTimeThis TC describes an object that stores the value of the sysUpTime object at the last time its entry was created. This can be used for polling applications to determine that an entry has been deleted and re-created between polls, causing an otherwise undetectable discontinuity in the data. If sysUpTime is reset to zero as a result of a re- initialization of the network management (sub)system, then the values of all LastCreateTime objects are also reset. However, after approximately 497 days without a re- initialization, the sysUpTime object will reach 2^^32-1 and then increment to zero; in this case, existing values of TimeStamp objects do not change. This can lead to ambiguities in the value of TimeStamp objects. · TimeTicks

The value of sysUpTime when this control entry was last activated. This can be used by the management station to detect if the table has been deleted and recreated between polls.

dsmonPdistCtlOwner

1.3.6.1.2.1.16.26.1.3.1.1.9

OwnerStringThis data type is used to model an administratively assigned name of the owner of a resource. Implementations must accept values composed of well-formed NVT ASCII sequences. In addition, implementations should accept values composed of well-formed UTF-8 sequences. It is suggested that this name contain one or more of the following: IP address, management station name, network manager's name, location, or phone number. In some cases the agent itself will be the owner of an entry. In these cases, this string shall be set to a string starting with 'monitor'. SNMP access control is articulated entirely in terms of the contents of MIB views; access to a particular SNMP object instance depends only upon its presence or absence in a particular MIB view and never upon its value or the value of related object instances. Thus, objects of this type afford resolution of resource contention only among cooperating managers; they realize no access control function with respect to uncooperative parties. SIZE (0..127) · OCTET STRING

The entity that configured this entry and is therefore using the resources assigned to it.

dsmonPdistCtlStatus

1.3.6.1.2.1.16.26.1.3.1.1.10

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

The status of this row. An entry MUST NOT exist in the active state unless all objects in the entry have an appropriate value. If this object is not equal to active(1), all associated entries in the dsmonPdistStatsTable shall be deleted.

dsmonPdistStatsTable

1.3.6.1.2.1.16.26.1.3.2

Index: dsmonPdistCtlIndex · dsmonPdistTimeMark · dsmonAggGroupIndex · protocolDirLocalIndex

A list of information on a per protocol per counter aggregation group usage. If the dsmonAggControlLocked object is equal to 'false', then all entries in this table will be deleted and the agent will not process packets on behalf of any dsmonPdistCtlEntry.

from RMON2-MIB

protocolDirLocalIndex

Integer32 (1..2147483647)

The locally arbitrary but unique identifier associated with this protocolDir entry. The value for each supported protocol must remain constant at least from one re-initialization of the entity's network management system to the next re-initialization, except that if a protocol is deleted and re-created, it must be re-created with a new value that has not been used since the last re-initialization. The specific value is meaningful only within a given SNMP entity. A protocolDirLocalIndex must not be re-used until the next agent restart in the event that the protocol directory entry is deleted.

dsmonPdistTimeMark

1.3.6.1.2.1.16.26.1.3.2.1.1

TimeFilterTo be used for the index to a table. Allows an application to download only those rows changed since a particular time. Note that this is not a history mechanism. Only current values of underlying objects are returned; saved instance values associated with particular values of sysUpTime are not. An entry is considered changed if the value of any object in the entry changes, if the row is created, or if any object in the entry is created or deleted. Note that deleted entries cannot be detected or downloaded. A time-filtered conceptual table is created by inserting a single object of SYNTAX TimeFilter as the first INDEX component in a copy of an existing basic conceptual table (i.e., any SEQUENCE without a TimeFilter INDEX component). Thus, for each conceptual entry 'I' in the basic table, there exists N conceptual entries in the time-filtered version, indexed N.I, where 'N' is equal to the value of sysUpTime. When an application retrieves conceptual instances from a time-filtered table, and an INDEX value is provided for the TimeFilter INDEX component 'N', the agent will only consider returning basic conceptual entries (e.g., 'fooColumn.N.I') if any column within the basic conceptual entry has changed since sysUpTime 'N'. If not, the basic conceptual entry will be ignored for the particular retrieval operation. When sysUpTime is equal to zero, this table shall be empty. One conceptual entry exists for each past value of sysUpTime, except that the whole table is purged should sysUpTime wrap. As an entry in a time-filtered table is updated (i.e., one of the columns in the basic conceptual table is changed), new conceptual entries are also created in the time-filtered version (which still shares the now updated object values with all other instances). The number of unique time-filtered instances that are created is determined by the value of sysUpTime at which the basic entry was last updated. One unique instance will exist for each value of sysUpTime at the last update time for the row. However, a new TimeFilter index instance is created for each new sysUpTime value. The TimeFilter index values not associated with entry updates are called duplicate time-filtered instances. After some deployment experience, it has been determined that a time-filtered table is more efficient if the agent stops a MIB walk operation by skipping over rows with a TimeFilter index value higher than the value in the received GetNext/GetBulk request. That is, instead of incrementing a TimeFilter index value, the agent will continue to the next object or table. As a consequence, GetNext or GetBulk operations will provide only one pass through a time-filtered table. It is suggested that an agent implement a time-filtered table in this manner to improve performance and avoid a MIB walk getting stuck in time-filtered tables. It is, however, still acceptable for an agent to implement a time-filtered table in the traditional manner (i.e., every conceptual time-filtered instance is returned in GetNext and GetBulk PDU responses), and management applications must be able to deal with such traditional implementations. See the appendix for further discussion of this textual convention. The following example is provided to demonstrate TimeFilter behavior: Consider the following basic conceptual table, basicFooTable. (Note that the basic version of a time-filtered table may not actually be defined.) basicFooTable: basicFooTable ... INDEX { fooIndex } BasicFooEntry { fooIndex Integer32, fooCounts Counter32 } For this example, the basicFooTable contains two static conceptual entries (fooIndex equals '1' and '2'), created at time zero. It also contains one dynamic conceptual entry (fooIndex equals '3'), which is created at time '3' and deleted at time '7'. The time-filtered version of the basicFooTable could be defined as follows: FooTable: fooTable ... INDEX { fooTimeMark, fooIndex } FooEntry { fooTimeMark TimeFilter, fooIndex Integer32, fooCounts Counter32 } Note that entries exist in the time-filtered conceptual table only if they actually exist in the underlying (basic) table. For this example, the fooTable will have three underlying basic entries (fooIndex == 1, 2, and 3), with the following activity (for sysUpTime equal 0 to 9): - fooEntry.N.1 is created at time '0' and most recently updated at time '6' to the value '5'. - fooEntry.N.2 is created at time '0' and most recently updated at time '8' to the value '9'. - fooEntry.N.3 is created at time '3', updated at time '5' to the value '17', and deleted at time '7'. The following tables show the values that would be returned for MIB walk operations with various TimeFilter values, done at different times. An application issues a retrieval request at time 'T', with a TimeFilter value, 'N' (typically set to a lower value, such as the value of sysUpTime at the last polling cycle). The following values would be returned in a MIB walk of fooCounts.N if T equals '0' and N equals '0': fooCounts.N.I Value ========================== fooCounts.0.1 0 fooCounts.0.2 0 Note that nothing is returned for fooCounts.0.3, since that entry does not exist at sysUpTime equals '0'. The following values would be returned in a full (traditional) MIB walk of fooCounts.N if T equals '3' and N equals '0': fooCounts.N.I Value ======================= fooCounts.0.1 0 fooCounts.0.2 0 fooCounts.0.3 0 fooCounts.1.3 0 fooCounts.2.3 0 fooCounts.3.3 0 Note that there are no instances for T equals 1 or 2 for the first two values of N, as these entries did not change since they were created at time '0'. Note that the current value for 'fooCounts.N.3' is returned here, even for values of N less than '3' (when the entry was created). The agent only considers the current existence of an entry in the TimeFilter algorithm, not the time when the entry was created. Note that the instances 'fooCounts.0.3', 'fooCounts.1.3', and 'fooCounts.2.3' are duplicates and can be suppressed by the agent in a MIB walk. The following values would be returned in a full (traditional) MIB walk of fooCounts.N if T equals '6' and N equals '3': fooCounts.N.I Value ======================= fooCounts.3.1 5 fooCounts.3.3 17 fooCounts.4.1 5 fooCounts.4.3 17 fooCounts.5.1 5 fooCounts.5.3 17 fooCounts.6.1 5 Note that no instances for entry 'fooCounts.N.2' are returned, since it has not changed since time '3'. Note that all instances except 'fooCounts.5.3' and 'fooCounts.6.1' are duplicates and can be suppressed by the agent in a MIB walk. The following values would be returned in a full (traditional) MIB walk of fooCounts.N if T equals '9' and N equals '6': fooCounts.N.I Value ======================= fooCounts.6.1 5 fooCounts.6.2 9 fooCounts.7.2 9 fooCounts.8.2 9 Note that no instances for entry 'fooCounts.N.3' are returned, since it was deleted at time '7'. Note that instances 'fooCounts.6.2' and 'fooCounts.7.2' are duplicates and can be suppressed by the agent in a MIB walk. · TimeTicks

The Time Filter index for this table. This object may be used by a management station to retrieve only rows which have been created or modified since a particular time. Note that the current value for a row are always returned and the TimeFilter is not a historical data archiving mechanism. Refer to RFC 2021 [RFC2021] for a detailed description of TimeFilter operation.

dsmonPdistStatsPkts

1.3.6.1.2.1.16.26.1.3.2.1.2

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32 · packets

The number of packets, using one of the DSCP values in the indicated counter aggregation group, for the protocol identified by the associated protocolDirLocalIndex value.

dsmonPdistStatsOctets

1.3.6.1.2.1.16.26.1.3.2.1.3

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32 · octets

The number of octets in packets, using one of the DSCP values in the indicated counter aggregation group, for the protocol identified by the associated protocolDirLocalIndex value. Note that this object doesn't count just those octets in the particular protocol frames, but includes the entire packet that contained the protocol.

dsmonPdistStatsOvflPkts

1.3.6.1.2.1.16.26.1.3.2.1.4

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32

The number of times the associated dsmonPdistStatsPkts counter has overflowed. Note that this object will only be instantiated if the associated dsmonPdistStatsHCPkts object is also instantiated for a particular dataSource.

dsmonPdistStatsOvflOctets

1.3.6.1.2.1.16.26.1.3.2.1.5

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32

The number of times the associated dsmonPdistStatsOctets counter has overflowed. Note that this object will only be instantiated if the associated dsmonPdistStatsHCOctets object is also instantiated for a particular dataSource.

dsmonPdistStatsHCPkts

1.3.6.1.2.1.16.26.1.3.2.1.6

ZeroBasedCounter64This TC describes an object which counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^64 is reached. Provided that an application discovers the new object within the minimum time to wrap it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. Note that this textual convention does not retain all the semantics of the Counter64 base type. Specifically, a Counter64 has an arbitrary initial value, but objects defined with this TC are required to start at the value zero. This behavior is not likely to have any adverse effects on management applications which are expecting Counter64 semantics. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64 · packets

The 64-bit version of the dsmonPdistStatsPkts object. Note that this object will only be instantiated if the RMON agent supports High Capacity monitoring for a particular dataSource.

dsmonPdistStatsHCOctets

1.3.6.1.2.1.16.26.1.3.2.1.7

ZeroBasedCounter64This TC describes an object which counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^64 is reached. Provided that an application discovers the new object within the minimum time to wrap it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. Note that this textual convention does not retain all the semantics of the Counter64 base type. Specifically, a Counter64 has an arbitrary initial value, but objects defined with this TC are required to start at the value zero. This behavior is not likely to have any adverse effects on management applications which are expecting Counter64 semantics. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64 · octets

The 64-bit version of the dsmonPdistStatsOctets object. Note that this object will only be instantiated if the RMON agent supports High Capacity monitoring for a particular dataSource.

dsmonPdistStatsCreateTime

1.3.6.1.2.1.16.26.1.3.2.1.8

LastCreateTimeThis TC describes an object that stores the value of the sysUpTime object at the last time its entry was created. This can be used for polling applications to determine that an entry has been deleted and re-created between polls, causing an otherwise undetectable discontinuity in the data. If sysUpTime is reset to zero as a result of a re- initialization of the network management (sub)system, then the values of all LastCreateTime objects are also reset. However, after approximately 497 days without a re- initialization, the sysUpTime object will reach 2^^32-1 and then increment to zero; in this case, existing values of TimeStamp objects do not change. This can lead to ambiguities in the value of TimeStamp objects. · TimeTicks

The value of sysUpTime when this dsmonPdistStats entry was last instantiated by the agent. This can be used by the management station to detect if the entry has been deleted and recreated between polls.

dsmonPdistTopNCtlTable

1.3.6.1.2.1.16.26.1.3.3

Index: dsmonPdistTopNCtlIndex

A set of parameters that control the creation of a report of the top N dsmonPdist entries according to a particular metric. Note that an agent MAY choose to limit the actual number of entries which may be created in this table. In this case, the agent SHOULD return an error-status of 'resourceUnavailable(13)', as per section 4.2.5 of the 'Protocol Operations for SNMPv2' specification [RFC1905].

dsmonPdistTopNCtlIndex

1.3.6.1.2.1.16.26.1.3.3.1.1

Integer32 (1..65535)

An index that uniquely identifies an entry in the dsmonPdistTopNCtlTable, with the same dsmonPdistTopNCtlIndex value as this object. Each entry in this table defines one Top N report prepared on behalf of the dsmonPdistStatsEntry collection with the same dsmonPdistCtlIndex as this object.

dsmonPdistTopNCtlPdistIndex

1.3.6.1.2.1.16.26.1.3.3.1.2

Integer32 (1..65535)

The dsmonPdistTable for which a top N report will be prepared on behalf of this entry. The dsmonPdistTable is identified by the value of the dsmonPdistCtlIndex for that table - that value is used here to identify the particular table. This object MUST NOT be modified if the associated dsmonPdistTopNCtlStatus object is equal to active(1).

dsmonPdistTopNCtlRateBase

1.3.6.1.2.1.16.26.1.3.3.1.3

INTEGER1 = dsmonPdistTopNPkts2 = dsmonPdistTopNOctets3 = dsmonPdistTopNHCPkts4 = dsmonPdistTopNHCOctets · Integer32

The variable for each dsmonPdist that the dsmonPdistTopNRate and dsmonPdistTopNHCRate variables are based upon. Each dsmonPdistTopN report generated on behalf of this control entry will be ranked in descending order, based on the associated dsmonPdistStatsTable counter, identified by this object. The following table identifies the dsmonPdistTable counter associated with each enumeration: Enumeration RateBase MIB Object ----------- ------------------- dsmonPdistTopNPkts dsmonPdistStatsPkts dsmonPdistTopNOctets dsmonPdistStatsOctets dsmonPdistTopNHCPkts dsmonPdistStatsHCPkts dsmonPdistTopNHCOctets dsmonPdistStatsHCOctets Note that the dsmonPdistTopNHCPkts and dsmonPdistTopNHCOctets enumerations are only available if the agent supports High Capacity monitoring. This object MUST NOT be modified if the associated dsmonPdistTopNCtlStatus object is equal to active(1).

dsmonPdistTopNCtlTimeRemaining

1.3.6.1.2.1.16.26.1.3.3.1.4

Integer32 (0..2147483647) · seconds

The number of seconds left in the report currently being collected. When this object is modified by the management station, a new collection is started, possibly aborting a currently running report. The new value is used as the requested duration of this report, and is immediately loaded into the associated dsmonPdistTopNCtlDuration object. When the report finishes, the probe will automatically start another collection with the same initial value of dsmonPdistTopNCtlTimeRemaining. Thus the management station may simply read the resulting reports repeatedly, checking the startTime and duration each time to ensure that a report was not missed or that the report parameters were not changed. While the value of this object is non-zero, it decrements by one per second until it reaches zero. At the time that this object decrements to zero, the report is made accessible in the dsmonPdistTopNTable, overwriting any report that may be there. When this object is modified by the management station, any associated entries in the dsmonPdistTopNTable shall be deleted.

dsmonPdistTopNCtlGeneratedReprts

1.3.6.1.2.1.16.26.1.3.3.1.5

Counter32 · reports

The number of reports that have been generated by this entry.

dsmonPdistTopNCtlDuration

1.3.6.1.2.1.16.26.1.3.3.1.6

Integer32 (0..2147483647) · seconds

The number of seconds that this report has collected during the last sampling interval. When the associated dsmonPdistTopNCtlTimeRemaining object is set, this object shall be set by the probe to the same value and shall not be modified until the next time the dsmonPdistTopNCtlTimeRemaining is set. This value shall be zero if no reports have been requested for this dsmonPdistTopNCtlEntry.

dsmonPdistTopNCtlRequestedSize

1.3.6.1.2.1.16.26.1.3.3.1.7

Integer32 (0..2147483647) · table entries

The maximum number of dsmonPdist entries requested for this report. When this object is created or modified, the probe SHOULD set dsmonPdistTopNCtlGrantedSize as closely to this object as is possible for the particular probe implementation and available resources.

dsmonPdistTopNCtlGrantedSize

1.3.6.1.2.1.16.26.1.3.3.1.8

Integer32 (0..2147483647) · table entries

The maximum number of dsmonPdist entries in this report. When the associated dsmonPdistTopNCtlRequestedSize object is created or modified, the probe SHOULD set this object as closely to the requested value as is possible for the particular implementation and available resources. The probe MUST NOT lower this value except as a result of a set to the associated dsmonPdistTopNCtlRequestedSize object. Protocol entries with the highest value of dsmonPdistTopNRate or dsmonPdistTopNHCRate (depending on the value of the associated dsmonPdistTopNCtlRateBase object) shall be placed in this table in decreasing order of this rate until there is no more room or until there are no more dsmonPdist entries.

dsmonPdistTopNCtlStartTime

1.3.6.1.2.1.16.26.1.3.3.1.9

TimeStampThe value of the sysUpTime object at which a specific occurrence happened. The specific occurrence must be defined in the description of any object defined using this type. If sysUpTime is reset to zero as a result of a re- initialization of the network management (sub)system, then the values of all TimeStamp objects are also reset. However, after approximately 497 days without a re- initialization, the sysUpTime object will reach 2^^32-1 and then increment around to zero; in this case, existing values of TimeStamp objects do not change. This can lead to ambiguities in the value of TimeStamp objects. · TimeTicks

The value of sysUpTime when this top N report was last started. In other words, this is the time that the associated dsmonPdistTopNCtlTimeRemaining object was modified to start the requested report or the time the report was last automatically (re)started. This object may be used by the management station to determine if a report was missed or not.

dsmonPdistTopNCtlOwner

1.3.6.1.2.1.16.26.1.3.3.1.10

OwnerStringThis data type is used to model an administratively assigned name of the owner of a resource. Implementations must accept values composed of well-formed NVT ASCII sequences. In addition, implementations should accept values composed of well-formed UTF-8 sequences. It is suggested that this name contain one or more of the following: IP address, management station name, network manager's name, location, or phone number. In some cases the agent itself will be the owner of an entry. In these cases, this string shall be set to a string starting with 'monitor'. SNMP access control is articulated entirely in terms of the contents of MIB views; access to a particular SNMP object instance depends only upon its presence or absence in a particular MIB view and never upon its value or the value of related object instances. Thus, objects of this type afford resolution of resource contention only among cooperating managers; they realize no access control function with respect to uncooperative parties. SIZE (0..127) · OCTET STRING

The entity that configured this entry and is therefore using the resources assigned to it.

dsmonPdistTopNCtlStatus

1.3.6.1.2.1.16.26.1.3.3.1.11

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

The status of this dsmonPdistTopNCtlEntry. An entry MUST NOT exist in the active state unless all objects in the entry have an appropriate value. If this object is not equal to active(1), all associated entries in the dsmonPdistTopNTable shall be deleted by the agent.

dsmonPdistTopNTable

1.3.6.1.2.1.16.26.1.3.4

Index: dsmonPdistTopNCtlIndex · dsmonPdistTopNIndex

A set of statistics for those protocol distribution entries that have counted the highest number of octets or packets. If the dsmonAggControlLocked object is equal to 'false', then all entries in this table SHALL be deleted, and the agent will not process TopN reports on behalf of any dsmonPdistTopNCtlEntry. When the dsmonAggControlLocked object is set to 'true', then particular reports SHOULD be restarted from the beginning, on behalf of all active rows in the dsmonPdistTopNCtlTable. Note that dsmonPdist entries which did not increment at all during the report interval SHOULD NOT be included in dsmonPdistTopN reports.

dsmonPdistTopNIndex

1.3.6.1.2.1.16.26.1.3.4.1.1

Integer32 (1..2147483647)

An index that uniquely identifies an entry in the dsmonPdistTopNTable among those in the same report. This index is between 1 and N, where N is the number of entries in this report. Note that 'N' may change over time, and may also be less than the dsmonPdistTopNCtlGrantedSize value associated with this entry.

dsmonPdistTopNPDLocalIndex

1.3.6.1.2.1.16.26.1.3.4.1.2

Integer32 (1..2147483647)

The protocolDirLocalIndex value which identifies the protocol associated with this entry. If the protocolDirEntry associated with the protocolDirLocalIndex with the same value as this object is de-activated or deleted, then the agent MUST delete this dsmonPdistTopN entry.

dsmonPdistTopNAggGroup

1.3.6.1.2.1.16.26.1.3.4.1.3

DsmonCounterAggGroupIndexThis TC describes a data type which identifies a DSMON counter aggregation group, which is an arbitrary grouping of conceptual counters, for monitoring purposes only. The range for this data type begins with zero (instead of one), to allow for a direct mapping between counter indexing schemes that start at zero (e.g. DSCP values in packets) and counter aggregation group values. (0..2147483647) · Integer32

The DSCP counter aggregation group index value associated with protocol identified in this entry. This object identifies the dsmonAggGroupEntry with the same dsmonAggControlIndex value as the associated dsmonPdistCtlAggProfile object and the same dsmonAggGroupIndex value as this object.

dsmonPdistTopNRate

1.3.6.1.2.1.16.26.1.3.4.1.4

Gauge32

The amount of change in the selected variable during this sampling interval. The selected variable is this protocol's instance of the object selected by dsmonPdistTopNCtlRateBase. If the associated dsmonPdistTopNCtlRateBase is equal to 'dsmonPdistTopNHCPkts' or 'dsmonPdistTopNHCOctets', then this object will contain the the least significant 32 bits of the associated dsmonPdistTopNHCRate object.

dsmonPdistTopNRateOvfl

1.3.6.1.2.1.16.26.1.3.4.1.5

Gauge32

The most significant 32 bits of the associated dsmonPdistTopNHCRate object. If the associated dsmonPdistTopNCtlRateBase is equal to 'dsmonPdistTopNHCPkts' or 'dsmonPdistTopNHCOctets', then this object will contain the upper 32 bits of the associated dsmonPdistTopNHCRate object. If the associated dsmonPdistTopNCtlRateBase is equal to 'dsmonPdistTopNPkts' or 'dsmonPdistTopNOctets', then this object will contain the value zero. The agent MAY choose not to instantiate this object if High Capacity monitoring is not supported.

dsmonPdistTopNHCRate

1.3.6.1.2.1.16.26.1.3.4.1.6

CounterBasedGauge64The CounterBasedGauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value can not be greater than 2^64-1 (18446744073709551615 decimal), and the minimum value can not be smaller than 0. The value of a CounterBasedGauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the CounterBasedGauge64 also decreases (increases). Note that this TC is not strictly supported in SMIv2, because the 'always increasing' and 'counter wrap' semantics associated with the Counter64 base type are not preserved. It is possible that management applications which rely solely upon the (Counter64) ASN.1 tag to determine object semantics will mistakenly operate upon objects of this type as they would for Counter64 objects. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64

The amount of change in the selected variable during this sampling interval. The selected variable is this protocol's instance of the object selected by dsmonPdistTopNCtlRateBase. If the associated dsmonPdistTopNCtlRateBase is equal to 'dsmonPdistTopNPkts' or 'dsmonPdistTopNOctets', then this object will contain the value zero, and the associated dsmonPdistTopNRate object will contain the change in the selected variable during the sampling interval. The agent MAY choose not to instantiate this object if High Capacity monitoring is not supported.

dsmonHostCtlTable

1.3.6.1.2.1.16.26.1.4.1

Index: dsmonHostCtlIndex

Controls setup of per counter aggregation group, per network layer host distribution statistics. Note that an agent MAY choose to limit the actual number of entries which may be created in this table. In this case, the agent SHOULD return an error-status of 'resourceUnavailable(13)', as per section 4.2.5 of the 'Protocol Operations for SNMPv2' specification [RFC1905].

dsmonHostCtlIndex

1.3.6.1.2.1.16.26.1.4.1.1.1

Integer32 (1..65535)

An arbitrary and unique index for this dsmonHostCtlEntry.

dsmonHostCtlDataSource

1.3.6.1.2.1.16.26.1.4.1.1.2

DataSourceIdentifies the source of the data that the associated function is configured to analyze. This source can be any interface on this device. In order to identify a particular interface, this object shall identify the instance of the ifIndex object, defined in [RFC2863], for the desired interface. For example, if an entry were to receive data from interface #1, this object would be set to ifIndex.1. · OBJECT IDENTIFIER

The source of data for the associated dsmonHostTable. Note that only packets that contain a network protocol encapsulation which contains a DS field [RFC2474] will be counted in this table. This object MUST NOT be modified if the associated dsmonHostCtlStatus object is equal to active(1).

dsmonHostCtlAggProfile

1.3.6.1.2.1.16.26.1.4.1.1.3

DsmonCounterAggProfileIndexThis TC describes a data type which identifies a DSMON counter aggregation profile, which is a set of counter aggregation group assignments for each of the 64 DSCP values, for a particular statistical collection. (1..2147483647) · Integer32

The dsmonAggControlIndex value identifying the counter aggregation profile which should be used on behalf of this dsmonHostCtlEntry. The associated dsmonAggControlEntry and dsmonAggProfileEntries, identified by the same dsmonAggControlIndex index value, MUST be active in order for this entry to remain active. It is possible for the counter aggregation configuration to change from a valid to invalid state for this dsmonHost collection. In this case, the associated dsmonHostCtlStatus object will be changed to the 'notReady' state, and data collection will not occur on behalf of this control entry. Note that an agent MAY choose to limit the actual number of counter aggregation profiles which may be applied to a particular data source. This object MUST NOT be modified if the associated dsmonHostCtlStatus object is equal to active(1).

dsmonHostCtlMaxDesiredEntries

1.3.6.1.2.1.16.26.1.4.1.1.4

Integer32 (-1 | 1..2147483647) · table entries

The maximum number of entries that are desired in the dsmonHostTable on behalf of this control entry. The probe will not create more than this number of associated entries in the table, but MAY choose to create fewer entries in this table for any reason including the lack of resources. If this value is set to -1, the probe MAY create any number of entries in this table. This object MUST NOT be modified if the associated dsmonHostCtlStatus object is equal to active(1).

dsmonHostCtlIPv4PrefixLen

1.3.6.1.2.1.16.26.1.4.1.1.5

Integer32 (8..32) · bits

The number of 'leftmost' contiguous bits in the host address field for encapsulations of IPv4, that should be maintained in this collection. This object controls how the dsmonHostAddress object is derived for packets which contain an encapsulation of IPv4. If this object has a value less than 32, then 'm' rightmost bits, where 'm' is equal to '32 - dsmonHostCtlIPv4PrefixLen', will be cleared to zero for counting purposes only. The 'leftmost' bit is the most significant bit of the first network-byte-order octet of the address. If this object is equal to 32, then no bits are cleared in each dsmonHostAddress field. This object MUST NOT be modified if the associated dsmonHostCtlStatus object is equal to active(1).

dsmonHostCtlIPv6PrefixLen

1.3.6.1.2.1.16.26.1.4.1.1.6

Integer32 (8..128) · bits

The number of 'leftmost' contiguous bits in the host address field for encapsulations of IPv6, that should be maintained in this collection. This object controls how the dsmonHostAddress object is derived for packets which contain an encapsulation of IPv6. If this object has a value less than 128, then 'm' rightmost bits, where 'm' is equal to '128 - dsmonHostCtlIPv6PrefixLen', will be cleared to zero for counting purposes only. The 'leftmost' bit is the most significant bit of the first network-byte-order octet of the address. If this object is equal to 128, then no bits are cleared in each dsmonHostAddress field. This object MUST NOT be modified if the associated dsmonHostCtlStatus object is equal to active(1).

dsmonHostCtlDroppedFrames

1.3.6.1.2.1.16.26.1.4.1.1.7

Counter32 · frames

The total number of frames which were received by the probe and therefore not accounted for in the *StatsDropEvents, but for which the probe chose not to count for the associated dsmonHost entries for whatever reason. Most often, this event occurs when the probe is out of some resources and decides to shed load from this collection. This count does not include packets that were not counted because they had MAC-layer errors. Note that if the dsmonHostTable is inactive because no appropriate protocols are enabled in the protocol directory, this value SHOULD be 0. Note that, unlike the dropEvents counter, this number is the exact number of frames dropped.

dsmonHostCtlInserts

1.3.6.1.2.1.16.26.1.4.1.1.8

Counter32 · table entries

The number of times a dsmonHost entry has been inserted into the dsmonHost table. If an entry is inserted, then deleted, and then inserted, this counter will be incremented by 2. To allow for efficient implementation strategies, agents MAY delay updating this object for short periods of time. For example, an implementation strategy may allow internal data structures to differ from those visible via SNMP for short periods of time. This counter may reflect the internal data structures for those short periods of time. Note that the table size can be determined by subtracting dsmonHostCtlDeletes from dsmonHostCtlInserts.

dsmonHostCtlDeletes

1.3.6.1.2.1.16.26.1.4.1.1.9

Counter32 · table entries

The number of times a dsmonHost entry has been deleted from the dsmonHost table (for any reason). If an entry is deleted, then inserted, and then deleted, this counter will be incremented by 2. To allow for efficient implementation strategies, agents MAY delay updating this object for short periods of time. For example, an implementation strategy may allow internal data structures to differ from those visible via SNMP for short periods of time. This counter may reflect the internal data structures for those short periods of time. Note that the table size can be determined by subtracting dsmonHostCtlDeletes from dsmonHostCtlInserts.

dsmonHostCtlCreateTime

1.3.6.1.2.1.16.26.1.4.1.1.10

LastCreateTimeThis TC describes an object that stores the value of the sysUpTime object at the last time its entry was created. This can be used for polling applications to determine that an entry has been deleted and re-created between polls, causing an otherwise undetectable discontinuity in the data. If sysUpTime is reset to zero as a result of a re- initialization of the network management (sub)system, then the values of all LastCreateTime objects are also reset. However, after approximately 497 days without a re- initialization, the sysUpTime object will reach 2^^32-1 and then increment to zero; in this case, existing values of TimeStamp objects do not change. This can lead to ambiguities in the value of TimeStamp objects. · TimeTicks

The value of sysUpTime when this control entry was last activated. This can be used by the management station to detect if the table has been deleted and recreated between polls.

dsmonHostCtlOwner

1.3.6.1.2.1.16.26.1.4.1.1.11

OwnerStringThis data type is used to model an administratively assigned name of the owner of a resource. Implementations must accept values composed of well-formed NVT ASCII sequences. In addition, implementations should accept values composed of well-formed UTF-8 sequences. It is suggested that this name contain one or more of the following: IP address, management station name, network manager's name, location, or phone number. In some cases the agent itself will be the owner of an entry. In these cases, this string shall be set to a string starting with 'monitor'. SNMP access control is articulated entirely in terms of the contents of MIB views; access to a particular SNMP object instance depends only upon its presence or absence in a particular MIB view and never upon its value or the value of related object instances. Thus, objects of this type afford resolution of resource contention only among cooperating managers; they realize no access control function with respect to uncooperative parties. SIZE (0..127) · OCTET STRING

The entity that configured this entry and is therefore using the resources assigned to it.

dsmonHostCtlStatus

1.3.6.1.2.1.16.26.1.4.1.1.12

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

The status of this dsmonHostCtlEntry. An entry MUST NOT exist in the active state unless all objects in the entry have an appropriate value. If this object is not equal to active(1), all associated entries in the dsmonHostTable shall be deleted.

dsmonHostTable

1.3.6.1.2.1.16.26.1.4.2

Index: dsmonHostCtlIndex · dsmonHostTimeMark · dsmonAggGroupIndex · protocolDirLocalIndex · dsmonHostAddress

A collection of statistics for particular network protocols which contain a DS field, and that has been discovered on a particular dataSource. The probe will add to this table all appropriate network protocols, for each network address seen as the source or destination address in all packets with no MAC errors, and will increment octet and packet counts in the table for all packets with no MAC errors. If the dsmonAggControlLocked object is equal to 'false', then all entries in this table will be deleted, and the agent will not process packets on behalf of any dsmonHostCtlEntry.

from RMON2-MIB

protocolDirLocalIndex

Integer32 (1..2147483647)

The locally arbitrary but unique identifier associated with this protocolDir entry. The value for each supported protocol must remain constant at least from one re-initialization of the entity's network management system to the next re-initialization, except that if a protocol is deleted and re-created, it must be re-created with a new value that has not been used since the last re-initialization. The specific value is meaningful only within a given SNMP entity. A protocolDirLocalIndex must not be re-used until the next agent restart in the event that the protocol directory entry is deleted.

dsmonHostTimeMark

1.3.6.1.2.1.16.26.1.4.2.1.1

TimeFilterTo be used for the index to a table. Allows an application to download only those rows changed since a particular time. Note that this is not a history mechanism. Only current values of underlying objects are returned; saved instance values associated with particular values of sysUpTime are not. An entry is considered changed if the value of any object in the entry changes, if the row is created, or if any object in the entry is created or deleted. Note that deleted entries cannot be detected or downloaded. A time-filtered conceptual table is created by inserting a single object of SYNTAX TimeFilter as the first INDEX component in a copy of an existing basic conceptual table (i.e., any SEQUENCE without a TimeFilter INDEX component). Thus, for each conceptual entry 'I' in the basic table, there exists N conceptual entries in the time-filtered version, indexed N.I, where 'N' is equal to the value of sysUpTime. When an application retrieves conceptual instances from a time-filtered table, and an INDEX value is provided for the TimeFilter INDEX component 'N', the agent will only consider returning basic conceptual entries (e.g., 'fooColumn.N.I') if any column within the basic conceptual entry has changed since sysUpTime 'N'. If not, the basic conceptual entry will be ignored for the particular retrieval operation. When sysUpTime is equal to zero, this table shall be empty. One conceptual entry exists for each past value of sysUpTime, except that the whole table is purged should sysUpTime wrap. As an entry in a time-filtered table is updated (i.e., one of the columns in the basic conceptual table is changed), new conceptual entries are also created in the time-filtered version (which still shares the now updated object values with all other instances). The number of unique time-filtered instances that are created is determined by the value of sysUpTime at which the basic entry was last updated. One unique instance will exist for each value of sysUpTime at the last update time for the row. However, a new TimeFilter index instance is created for each new sysUpTime value. The TimeFilter index values not associated with entry updates are called duplicate time-filtered instances. After some deployment experience, it has been determined that a time-filtered table is more efficient if the agent stops a MIB walk operation by skipping over rows with a TimeFilter index value higher than the value in the received GetNext/GetBulk request. That is, instead of incrementing a TimeFilter index value, the agent will continue to the next object or table. As a consequence, GetNext or GetBulk operations will provide only one pass through a time-filtered table. It is suggested that an agent implement a time-filtered table in this manner to improve performance and avoid a MIB walk getting stuck in time-filtered tables. It is, however, still acceptable for an agent to implement a time-filtered table in the traditional manner (i.e., every conceptual time-filtered instance is returned in GetNext and GetBulk PDU responses), and management applications must be able to deal with such traditional implementations. See the appendix for further discussion of this textual convention. The following example is provided to demonstrate TimeFilter behavior: Consider the following basic conceptual table, basicFooTable. (Note that the basic version of a time-filtered table may not actually be defined.) basicFooTable: basicFooTable ... INDEX { fooIndex } BasicFooEntry { fooIndex Integer32, fooCounts Counter32 } For this example, the basicFooTable contains two static conceptual entries (fooIndex equals '1' and '2'), created at time zero. It also contains one dynamic conceptual entry (fooIndex equals '3'), which is created at time '3' and deleted at time '7'. The time-filtered version of the basicFooTable could be defined as follows: FooTable: fooTable ... INDEX { fooTimeMark, fooIndex } FooEntry { fooTimeMark TimeFilter, fooIndex Integer32, fooCounts Counter32 } Note that entries exist in the time-filtered conceptual table only if they actually exist in the underlying (basic) table. For this example, the fooTable will have three underlying basic entries (fooIndex == 1, 2, and 3), with the following activity (for sysUpTime equal 0 to 9): - fooEntry.N.1 is created at time '0' and most recently updated at time '6' to the value '5'. - fooEntry.N.2 is created at time '0' and most recently updated at time '8' to the value '9'. - fooEntry.N.3 is created at time '3', updated at time '5' to the value '17', and deleted at time '7'. The following tables show the values that would be returned for MIB walk operations with various TimeFilter values, done at different times. An application issues a retrieval request at time 'T', with a TimeFilter value, 'N' (typically set to a lower value, such as the value of sysUpTime at the last polling cycle). The following values would be returned in a MIB walk of fooCounts.N if T equals '0' and N equals '0': fooCounts.N.I Value ========================== fooCounts.0.1 0 fooCounts.0.2 0 Note that nothing is returned for fooCounts.0.3, since that entry does not exist at sysUpTime equals '0'. The following values would be returned in a full (traditional) MIB walk of fooCounts.N if T equals '3' and N equals '0': fooCounts.N.I Value ======================= fooCounts.0.1 0 fooCounts.0.2 0 fooCounts.0.3 0 fooCounts.1.3 0 fooCounts.2.3 0 fooCounts.3.3 0 Note that there are no instances for T equals 1 or 2 for the first two values of N, as these entries did not change since they were created at time '0'. Note that the current value for 'fooCounts.N.3' is returned here, even for values of N less than '3' (when the entry was created). The agent only considers the current existence of an entry in the TimeFilter algorithm, not the time when the entry was created. Note that the instances 'fooCounts.0.3', 'fooCounts.1.3', and 'fooCounts.2.3' are duplicates and can be suppressed by the agent in a MIB walk. The following values would be returned in a full (traditional) MIB walk of fooCounts.N if T equals '6' and N equals '3': fooCounts.N.I Value ======================= fooCounts.3.1 5 fooCounts.3.3 17 fooCounts.4.1 5 fooCounts.4.3 17 fooCounts.5.1 5 fooCounts.5.3 17 fooCounts.6.1 5 Note that no instances for entry 'fooCounts.N.2' are returned, since it has not changed since time '3'. Note that all instances except 'fooCounts.5.3' and 'fooCounts.6.1' are duplicates and can be suppressed by the agent in a MIB walk. The following values would be returned in a full (traditional) MIB walk of fooCounts.N if T equals '9' and N equals '6': fooCounts.N.I Value ======================= fooCounts.6.1 5 fooCounts.6.2 9 fooCounts.7.2 9 fooCounts.8.2 9 Note that no instances for entry 'fooCounts.N.3' are returned, since it was deleted at time '7'. Note that instances 'fooCounts.6.2' and 'fooCounts.7.2' are duplicates and can be suppressed by the agent in a MIB walk. · TimeTicks

The Time Filter index for this table. This object may be used by a management station to retrieve only rows which have been created or modified since a particular time. Note that the current value for a row are always returned and the TimeFilter is not a historical data archiving mechanism. Refer to RFC 2021 [RFC2021] for a detailed description of TimeFilter operation.

dsmonHostAddress

1.3.6.1.2.1.16.26.1.4.2.1.2

OCTET STRING SIZE (0..110)

The network address for this dsmonHostEntry. This object is encoded according to the protocol type indicated by the protocolDirLocalIndex value in the index. In addition, this object may have some 'rightmost' bits cleared to zero for counting purposes, as indicated by the associated dsmonHostCtlIPv4PrefixLen or dsmonHostCtlIPv6PrefixLen objects.

dsmonHostInPkts

1.3.6.1.2.1.16.26.1.4.2.1.3

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32 · packets

The number of packets without errors, using one of the DSCP values in the indicated counter aggregation group, and transmitted to this address, since this entry was added to the dsmonHostTable. Note that this is the number of link- layer packets, so if a single network-layer packet is fragmented into several link-layer frames, this counter is incremented several times.

dsmonHostInOctets

1.3.6.1.2.1.16.26.1.4.2.1.4

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32 · octets

The number of octets in all packets, transmitted to this address and using one of the DSCP values in the indicated counter aggregation group, since this entry was added to the dsmonHostTable (excluding framing bits but including FCS octets), excluding those octets in packets that contained errors. Note this doesn't count just those octets in the particular protocol frames, but includes the entire packet that contained the protocol.

dsmonHostInOvflPkts

1.3.6.1.2.1.16.26.1.4.2.1.5

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32

The number of times the associated dsmonHostInPkts counter has overflowed. Note that this object will only be instantiated if the associated dsmonHostInHCPkts object is also instantiated for a particular dataSource.

dsmonHostInOvflOctets

1.3.6.1.2.1.16.26.1.4.2.1.6

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32

The number of times the associated dsmonHostInOctets counter has overflowed. Note that this object will only be instantiated if the associated dsmonHostInHCOctets object is also instantiated for a particular dataSource.

dsmonHostInHCPkts

1.3.6.1.2.1.16.26.1.4.2.1.7

ZeroBasedCounter64This TC describes an object which counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^64 is reached. Provided that an application discovers the new object within the minimum time to wrap it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. Note that this textual convention does not retain all the semantics of the Counter64 base type. Specifically, a Counter64 has an arbitrary initial value, but objects defined with this TC are required to start at the value zero. This behavior is not likely to have any adverse effects on management applications which are expecting Counter64 semantics. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64 · packets

The 64-bit version of the dsmonHostInPkts object. Note that this object will only be instantiated if the RMON agent supports High Capacity monitoring for a particular dataSource.

dsmonHostInHCOctets

1.3.6.1.2.1.16.26.1.4.2.1.8

ZeroBasedCounter64This TC describes an object which counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^64 is reached. Provided that an application discovers the new object within the minimum time to wrap it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. Note that this textual convention does not retain all the semantics of the Counter64 base type. Specifically, a Counter64 has an arbitrary initial value, but objects defined with this TC are required to start at the value zero. This behavior is not likely to have any adverse effects on management applications which are expecting Counter64 semantics. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64 · octets

The 64-bit version of the dsmonHostInOctets object. Note that this object will only be instantiated if the RMON agent supports High Capacity monitoring for a particular dataSource.

dsmonHostOutPkts

1.3.6.1.2.1.16.26.1.4.2.1.9

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32 · packets

The number of packets without errors, using one of the DSCP values in the indicated counter aggregation group, and transmitted by this address, since this entry was added to the dsmonHostTable. Note that this is the number of link- layer packets, so if a single network-layer packet is fragmented into several link-layer frames, this counter is incremented several times.

dsmonHostOutOctets

1.3.6.1.2.1.16.26.1.4.2.1.10

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32 · octets

The number of octets, transmitted by this address and using one of the DSCP values in the identified counter aggregation group, since this entry was added to the dsmonHostTable (excluding framing bits but including FCS octets), excluding those octets in packets that contained errors. Note this doesn't count just those octets in the particular protocol frames, but includes the entire packet that contained the protocol.

dsmonHostOutOvflPkts

1.3.6.1.2.1.16.26.1.4.2.1.11

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32

The number of times the associated dsmonHostOutPkts counter has overflowed. Note that this object will only be instantiated if the associated dsmonHostOutHCPkts object is also instantiated for a particular dataSource.

dsmonHostOutOvflOctets

1.3.6.1.2.1.16.26.1.4.2.1.12

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32

The number of times the associated dsmonHostOutOctets counter has overflowed. Note that this object will only be instantiated if the associated dsmonHostOutHCOctets object is also instantiated for a particular dataSource.

dsmonHostOutHCPkts

1.3.6.1.2.1.16.26.1.4.2.1.13

ZeroBasedCounter64This TC describes an object which counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^64 is reached. Provided that an application discovers the new object within the minimum time to wrap it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. Note that this textual convention does not retain all the semantics of the Counter64 base type. Specifically, a Counter64 has an arbitrary initial value, but objects defined with this TC are required to start at the value zero. This behavior is not likely to have any adverse effects on management applications which are expecting Counter64 semantics. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64 · packets

The 64-bit version of the dsmonHostOutPkts object. Note that this object will only be instantiated if the RMON agent supports High Capacity monitoring for a particular dataSource.

dsmonHostOutHCOctets

1.3.6.1.2.1.16.26.1.4.2.1.14

ZeroBasedCounter64This TC describes an object which counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^64 is reached. Provided that an application discovers the new object within the minimum time to wrap it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. Note that this textual convention does not retain all the semantics of the Counter64 base type. Specifically, a Counter64 has an arbitrary initial value, but objects defined with this TC are required to start at the value zero. This behavior is not likely to have any adverse effects on management applications which are expecting Counter64 semantics. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64 · octets

The 64-bit version of the dsmonHostOutOctets object. Note that this object will only be instantiated if the RMON agent supports High Capacity monitoring for a particular dataSource.

dsmonHostCreateTime

1.3.6.1.2.1.16.26.1.4.2.1.15

LastCreateTimeThis TC describes an object that stores the value of the sysUpTime object at the last time its entry was created. This can be used for polling applications to determine that an entry has been deleted and re-created between polls, causing an otherwise undetectable discontinuity in the data. If sysUpTime is reset to zero as a result of a re- initialization of the network management (sub)system, then the values of all LastCreateTime objects are also reset. However, after approximately 497 days without a re- initialization, the sysUpTime object will reach 2^^32-1 and then increment to zero; in this case, existing values of TimeStamp objects do not change. This can lead to ambiguities in the value of TimeStamp objects. · TimeTicks

The value of sysUpTime when this dsmonHost entry was last instantiated by the agent. This can be used by the management station to ensure that the entry has not been deleted and recreated between polls.

dsmonHostTopNCtlTable

1.3.6.1.2.1.16.26.1.4.3

Index: dsmonHostTopNCtlIndex

A set of parameters that control the creation of a report of the top N dsmonHost entries according to a selected metric. Note that an agent MAY choose to limit the actual number of entries which may be created in this table. In this case, the agent SHOULD return an error-status of 'resourceUnavailable(13)', as per section 4.2.5 of the 'Protocol Operations for SNMPv2' specification [RFC1905].

dsmonHostTopNCtlIndex

1.3.6.1.2.1.16.26.1.4.3.1.1

Integer32 (1..65535)

An index that uniquely identifies an entry in the dsmonHostTopNCtlTable. Each such entry defines one Top N report prepared for one RMON dataSource.

dsmonHostTopNCtlHostIndex

1.3.6.1.2.1.16.26.1.4.3.1.2

Integer32 (1..65535)

The dsmonHostTable for which a top N report will be prepared on behalf of this entry. The dsmonHostTable is identified by the value of the dsmonHostCtlIndex for that table - that value is used here to identify the particular table. This object MUST NOT be modified if the associated dsmonHostTopNCtlStatus object is equal to active(1).

dsmonHostTopNCtlRateBase

1.3.6.1.2.1.16.26.1.4.3.1.3

INTEGER1 = dsmonHostTopNInPkts2 = dsmonHostTopNInOctets3 = dsmonHostTopNOutPkts4 = dsmonHostTopNOutOctets5 = dsmonHostTopNTotalPkts6 = dsmonHostTopNTotalOctets7 = dsmonHostTopNInHCPkts8 = dsmonHostTopNInHCOctets9 = dsmonHostTopNOutHCPkts10 = dsmonHostTopNOutHCOctets11 = dsmonHostTopNTotalHCPkts12 = dsmonHostTopNTotalHCOctets · Integer32

The variable(s) for each dsmonHost that the dsmonHostTopNRate and dsmonHostTopNHCRate variables are based upon. Each dsmonHostTopN report generated on behalf of this control entry will be ranked in descending order, based on the associated dsmonHostTable counter(s), identified by this object. The following table identifies the dsmonHostTable counters associated with each enumeration: Enumeration RateBase MIB Objects ----------- -------------------- dsmonHostTopNInPkts dsmonHostInPkts dsmonHostTopNInOctets dsmonHostInOctets dsmonHostTopNOutPkts dsmonHostOutPkts dsmonHostTopNOutOctets dsmonHostOutOctets dsmonHostTopNTotalPkts dsmonHostInPkts + dsmonHostOutPkts dsmonHostTopNTotalOctets dsmonHostInOctets + dsmonHostOutOctets dsmonHostTopNInHCPkts dsmonHostInHCPkts dsmonHostTopNInHCOctets dsmonHostInHCOctets dsmonHostTopNOutHCPkts dsmonHostOutHCPkts dsmonHostTopNOutHCOctets dsmonHostOutHCPkts dsmonHostTopNTotalHCPkts dsmonHostInHCPkts + dsmonHostOutHCPkts dsmonHostTopNTotalHCOctets dsmonHostInHCOctets + dsmonHostOutHCOctets The following enumerations are only available if the agent supports High Capacity monitoring: dsmonHostTopNInHCPkts dsmonHostTopNInHCOctets dsmonHostTopNOutHCPkts dsmonHostTopNOutHCOctets dsmonHostTopNTotalHCPkts dsmonHostTopNTotalHCOctets It is an implementation-specific matter whether an agent can detect an overflow condition resulting from the addition of two counter delta values for the following enumerations: dsmonHostTopNTotalPkts dsmonHostTopNTotalOctets dsmonHostTopNTotalHCPkts dsmonHostTopNTotalHCOctets In the event such an overflow condition can be detected by the agent, the associated dsmonHostTopNRate, dsmonHostTopNRateOvfl, and/or dsmonHostTopNHCRate objects should be set to their maximum value. This object MUST NOT be modified if the associated dsmonHostTopNCtlStatus object is equal to active(1).

dsmonHostTopNCtlTimeRemaining

1.3.6.1.2.1.16.26.1.4.3.1.4

Integer32 (0..2147483647) · seconds

The number of seconds left in the report currently being collected. When this object is modified by the management station, a new collection is started, possibly aborting a currently running report. The new value is used as the requested duration of this report, and is immediately loaded into the associated dsmonHostTopNCtlDuration object. When the report finishes, the probe will automatically start another collection with the same initial value of dsmonHostTopNCtlTimeRemaining. Thus the management station may simply read the resulting reports repeatedly, checking the startTime and duration each time to ensure that a report was not missed or that the report parameters were not changed. While the value of this object is non-zero, it decrements by one per second until it reaches zero. At the time that this object decrements to zero, the report is made accessible in the dsmonHostTopNTable, overwriting any report that may be there. When this object is modified by the management station, any associated entries in the dsmonHostTopNTable shall be deleted.

dsmonHostTopNCtlGeneratedReports

1.3.6.1.2.1.16.26.1.4.3.1.5

Counter32 · reports

The number of reports that have been generated by this entry.

dsmonHostTopNCtlDuration

1.3.6.1.2.1.16.26.1.4.3.1.6

Integer32 (0..2147483647) · seconds

The number of seconds that this report has collected during the last sampling interval. When the associated dsmonHostTopNCtlTimeRemaining object is set, this object shall be set by the probe to the same value and shall not be modified until the next time the dsmonHostTopNCtlTimeRemaining is set. This value shall be zero if no reports have been requested for this dsmonHostTopNCtlEntry.

dsmonHostTopNCtlRequestedSize

1.3.6.1.2.1.16.26.1.4.3.1.7

Integer32 (0..2147483647) · table entries

The maximum number of dsmonHost entries requested for this report. When this object is created or modified, the probe SHOULD set dsmonHostTopNCtlGrantedSize as closely to this object as is possible for the particular probe implementation and available resources.

dsmonHostTopNCtlGrantedSize

1.3.6.1.2.1.16.26.1.4.3.1.8

Integer32 (0..2147483647) · table entries

The maximum number of dsmonHost entries in this report. When the associated dsmonHostTopNCtlRequestedSize object is created or modified, the probe SHOULD set this object as closely to the requested value as is possible for the particular implementation and available resources. The probe MUST NOT lower this value except as a result of a set to the associated dsmonHostTopNCtlRequestedSize object. Protocol entries with the highest value of dsmonHostTopNRate or dsmonHostTopNHCRate (depending on the value of the associated dsmonHostTopNCtlRateBase object) shall be placed in this table in decreasing order of this rate until there is no more room or until there are no more dsmonHost entries.

dsmonHostTopNCtlStartTime

1.3.6.1.2.1.16.26.1.4.3.1.9

TimeStampThe value of the sysUpTime object at which a specific occurrence happened. The specific occurrence must be defined in the description of any object defined using this type. If sysUpTime is reset to zero as a result of a re- initialization of the network management (sub)system, then the values of all TimeStamp objects are also reset. However, after approximately 497 days without a re- initialization, the sysUpTime object will reach 2^^32-1 and then increment around to zero; in this case, existing values of TimeStamp objects do not change. This can lead to ambiguities in the value of TimeStamp objects. · TimeTicks

The value of sysUpTime when this top N report was last started. In other words, this is the time that the associated dsmonHostTopNCtlTimeRemaining object was modified to start the requested report or the time the report was last automatically (re)started. This object may be used by the management station to determine if a report was missed or not.

dsmonHostTopNCtlOwner

1.3.6.1.2.1.16.26.1.4.3.1.10

OwnerStringThis data type is used to model an administratively assigned name of the owner of a resource. Implementations must accept values composed of well-formed NVT ASCII sequences. In addition, implementations should accept values composed of well-formed UTF-8 sequences. It is suggested that this name contain one or more of the following: IP address, management station name, network manager's name, location, or phone number. In some cases the agent itself will be the owner of an entry. In these cases, this string shall be set to a string starting with 'monitor'. SNMP access control is articulated entirely in terms of the contents of MIB views; access to a particular SNMP object instance depends only upon its presence or absence in a particular MIB view and never upon its value or the value of related object instances. Thus, objects of this type afford resolution of resource contention only among cooperating managers; they realize no access control function with respect to uncooperative parties. SIZE (0..127) · OCTET STRING

The entity that configured this entry and is therefore using the resources assigned to it.

dsmonHostTopNCtlStatus

1.3.6.1.2.1.16.26.1.4.3.1.11

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

The status of this dsmonHostTopNCtlEntry. An entry MUST NOT exist in the active state unless all objects in the entry have an appropriate value. If this object is not equal to active(1), all associated entries in the dsmonHostTopNTable shall be deleted by the agent.

dsmonHostTopNTable

1.3.6.1.2.1.16.26.1.4.4

Index: dsmonHostTopNCtlIndex · dsmonHostTopNIndex

A set of statistics for those dsmonHost entries that have counted the highest number of octets or packets. If the dsmonAggControlLocked object is equal to 'false', then all entries in this table SHALL be deleted, and the agent will not process TopN reports on behalf of any dsmonHostTopNCtlEntry. When the dsmonAggControlLocked object is set to 'true', then particular reports SHOULD be restarted from the beginning, on behalf of all active rows in the dsmonHostTopNCtlTable. Note that dsmonHost entries which did not increment at all during the report interval SHOULD NOT be included in dsmonHostTopN reports.

dsmonHostTopNIndex

1.3.6.1.2.1.16.26.1.4.4.1.1

Integer32 (1..2147483647)

An index that uniquely identifies an entry in the dsmonHostTopNTable among those in the same report. This index is between 1 and N, where N is the number of entries in this report.

dsmonHostTopNPDLocalIndex

1.3.6.1.2.1.16.26.1.4.4.1.2

Integer32 (1..2147483647)

The protocolDirLocalIndex value which identifies the protocol associated with the dsmonHostTopNAddress object in this entry. If the protocolDirEntry associated with the protocolDirLocalIndex with the same value as this object is de-activated or deleted, then the agent MUST delete this dsmonHostTopN entry.

dsmonHostTopNAddress

1.3.6.1.2.1.16.26.1.4.4.1.3

OCTET STRING

The dsmonHostAddress value for the network host identified in this entry. The associated dsmonHostTopNPDLocalIndex object identifies the network protocol type and the encoding rules for this object.

dsmonHostTopNAggGroup

1.3.6.1.2.1.16.26.1.4.4.1.4

DsmonCounterAggGroupIndexThis TC describes a data type which identifies a DSMON counter aggregation group, which is an arbitrary grouping of conceptual counters, for monitoring purposes only. The range for this data type begins with zero (instead of one), to allow for a direct mapping between counter indexing schemes that start at zero (e.g. DSCP values in packets) and counter aggregation group values. (0..2147483647) · Integer32

The counter aggregation group index value associated with host identified in this entry. This object identifies the dsmonAggGroupEntry with the same dsmonAggControlIndex value as the associated dsmonHostCtlAggProfile object and the same dsmonAggGroupIndex value as this object.

dsmonHostTopNRate

1.3.6.1.2.1.16.26.1.4.4.1.5

Gauge32

The amount of change in the selected variable during this sampling interval. The selected variable is this host's instance of the object selected by dsmonHostTopNCtlRateBase. If the associated dsmonHostTopNCtlRateBase indicates a High Capacity monitoring enumeration, (e.g. 'dsmonHostTopNInHCPkts'), then this object will contain the the least significant 32 bits of the associated dsmonHostTopNHCRate object.

dsmonHostTopNRateOvfl

1.3.6.1.2.1.16.26.1.4.4.1.6

Gauge32

The most significant 32 bits of the associated dsmonHostTopNHCRate object. If the associated dsmonHostTopNCtlRateBase is equal to any of the High Capacity monitoring enumerations (e.g. 'dsmonHostTopNInHCPkts'), then this object will contain the upper 32 bits of the associated dsmonHostTopNHCRate object. If the associated dsmonHostTopNCtlRateBase is not equal to any of High Capacity monitoring enumerations, then this object will contain the value zero. The agent MAY choose not to instantiate this object if High Capacity monitoring is not supported.

dsmonHostTopNHCRate

1.3.6.1.2.1.16.26.1.4.4.1.7

CounterBasedGauge64The CounterBasedGauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value can not be greater than 2^64-1 (18446744073709551615 decimal), and the minimum value can not be smaller than 0. The value of a CounterBasedGauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the CounterBasedGauge64 also decreases (increases). Note that this TC is not strictly supported in SMIv2, because the 'always increasing' and 'counter wrap' semantics associated with the Counter64 base type are not preserved. It is possible that management applications which rely solely upon the (Counter64) ASN.1 tag to determine object semantics will mistakenly operate upon objects of this type as they would for Counter64 objects. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64

The amount of change in the selected variable during this sampling interval. The selected variable is this host's instance of the object selected by dsmonHostTopNCtlRateBase. If the associated dsmonHostTopNCtlRateBase is not equal to any of the High Capacity monitoring enumerations (e.g., 'dsmonHostTopNInPkts'), then this object will contain the value zero, and the associated dsmonHostTopNRate object will contain the change in the selected variable during the sampling interval. The agent MAY choose not to instantiate this object if High Capacity monitoring is not supported.

dsmonMatrixCtlTable

1.3.6.1.2.1.16.26.1.6.1

Index: dsmonMatrixCtlIndex

Controls setup of per counter aggregation group, per host- pair, application protocol distribution statistics. Note that an agent MAY choose to limit the actual number of entries which may be created in this table. In this case, the agent SHOULD return an error-status of 'resourceUnavailable(13)', as per section 4.2.5 of the 'Protocol Operations for SNMPv2' specification [RFC1905].

dsmonMatrixCtlIndex

1.3.6.1.2.1.16.26.1.6.1.1.1

Integer32 (1..65535)

An arbitrary and unique index for this dsmonMatrixCtlEntry.

dsmonMatrixCtlDataSource

1.3.6.1.2.1.16.26.1.6.1.1.2

DataSourceIdentifies the source of the data that the associated function is configured to analyze. This source can be any interface on this device. In order to identify a particular interface, this object shall identify the instance of the ifIndex object, defined in [RFC2863], for the desired interface. For example, if an entry were to receive data from interface #1, this object would be set to ifIndex.1. · OBJECT IDENTIFIER

The source of data for the associated dsmonMatrixSDTable and dsmonMatrixDSTable. Note that only packets that contain a network protocol encapsulation which contains a DS field [RFC2474] will be counted in this table. This object MUST NOT be modified if the associated dsmonMatrixCtlStatus object is equal to active(1).

dsmonMatrixCtlAggProfile

1.3.6.1.2.1.16.26.1.6.1.1.3

DsmonCounterAggProfileIndexThis TC describes a data type which identifies a DSMON counter aggregation profile, which is a set of counter aggregation group assignments for each of the 64 DSCP values, for a particular statistical collection. (1..2147483647) · Integer32

The dsmonAggControlIndex value identifying the counter aggregation profile which should be used on behalf of this dsmonMatrixCtlEntry. The associated dsmonAggControlEntry and dsmonAggProfileEntries, identified by the same dsmonAggControlIndex index value, MUST be active in order for this entry to remain active. It is possible for the counter aggregation configuration to change from a valid to invalid state for this dsmonMatrix collection. In this case, the associated dsmonMatrixCtlStatus object will be changed to the 'notReady' state, and data collection will not occur on behalf of this control entry. Note that an agent MAY choose to limit the actual number of counter aggregation profiles which may be applied to a particular data source. This object MUST NOT be modified if the associated dsmonMatrixCtlStatus object is equal to active(1).

dsmonMatrixCtlMaxDesiredEntries

1.3.6.1.2.1.16.26.1.6.1.1.4

Integer32 (-1 | 1..2147483647) · table entries

The maximum number of entries that are desired in the dsmonMatrix tables on behalf of this control entry. The probe will not create more than this number of associated entries in these tables, but may choose to create fewer entries in this table for any reason including the lack of resources. If this value is set to -1, the probe may create any number of entries in this table. This object MUST NOT be modified if the associated dsmonMatrixCtlStatus object is equal to active(1).

dsmonMatrixCtlDroppedFrames

1.3.6.1.2.1.16.26.1.6.1.1.5

Counter32 · frames

The total number of frames which were received by the probe and therefore not accounted for in the *StatsDropEvents, but for which the probe chose not to count for the associated dsmonMatrixSD and dsmonMatrixDS entries for whatever reason. Most often, this event occurs when the probe is out of some resources and decides to shed load from this collection. This count does not include packets that were not counted because they had MAC-layer errors. Note that if the dsmonMatrix tables are inactive because no appropriate protocols are enabled in the protocol directory, this value SHOULD be 0. Note that, unlike the dropEvents counter, this number is the exact number of frames dropped.

dsmonMatrixCtlInserts

1.3.6.1.2.1.16.26.1.6.1.1.6

Counter32 · table entries

The number of times a dsmonMatrix entry has been inserted into the dsmonMatrix tables. If an entry is inserted, then deleted, and then inserted, this counter will be incremented by 2. The addition of a conversation into both the dsmonMatrixSDTable and dsmonMatrixDSTable shall be counted as two insertions (even though every addition into one table must be accompanied by an insertion into the other). To allow for efficient implementation strategies, agents may delay updating this object for short periods of time. For example, an implementation strategy may allow internal data structures to differ from those visible via SNMP for short periods of time. This counter may reflect the internal data structures for those short periods of time. Note that the sum of the dsmonMatrixSDTable and dsmonMatrixDSTable sizes can be determined by subtracting dsmonMatrixCtlDeletes from dsmonMatrixCtlInserts.

dsmonMatrixCtlDeletes

1.3.6.1.2.1.16.26.1.6.1.1.7

Counter32 · table entries

The number of times a dsmonMatrix entry has been deleted from the dsmonMatrix tables (for any reason). If an entry is deleted, then inserted, and then deleted, this counter will be incremented by 2. The deletion of a conversation from both the dsmonMatrixSDTable and dsmonMatrixDSTable shall be counted as two deletions (even though every deletion from one table must be accompanied by a deletion from the other). To allow for efficient implementation strategies, agents MAY delay updating this object for short periods of time. For example, an implementation strategy may allow internal data structures to differ from those visible via SNMP for short periods of time. This counter may reflect the internal data structures for those short periods of time. Note that the sum of the dsmonMatrixSDTable and dsmonMatrixDSTable sizes can be determined by subtracting dsmonMatrixCtlDeletes from dsmonMatrixCtlInserts.

dsmonMatrixCtlCreateTime

1.3.6.1.2.1.16.26.1.6.1.1.8

LastCreateTimeThis TC describes an object that stores the value of the sysUpTime object at the last time its entry was created. This can be used for polling applications to determine that an entry has been deleted and re-created between polls, causing an otherwise undetectable discontinuity in the data. If sysUpTime is reset to zero as a result of a re- initialization of the network management (sub)system, then the values of all LastCreateTime objects are also reset. However, after approximately 497 days without a re- initialization, the sysUpTime object will reach 2^^32-1 and then increment to zero; in this case, existing values of TimeStamp objects do not change. This can lead to ambiguities in the value of TimeStamp objects. · TimeTicks

The value of sysUpTime when this control entry was last activated. This can be used by the management station to detect if the table has been deleted and recreated between polls.

dsmonMatrixCtlOwner

1.3.6.1.2.1.16.26.1.6.1.1.9

OwnerStringThis data type is used to model an administratively assigned name of the owner of a resource. Implementations must accept values composed of well-formed NVT ASCII sequences. In addition, implementations should accept values composed of well-formed UTF-8 sequences. It is suggested that this name contain one or more of the following: IP address, management station name, network manager's name, location, or phone number. In some cases the agent itself will be the owner of an entry. In these cases, this string shall be set to a string starting with 'monitor'. SNMP access control is articulated entirely in terms of the contents of MIB views; access to a particular SNMP object instance depends only upon its presence or absence in a particular MIB view and never upon its value or the value of related object instances. Thus, objects of this type afford resolution of resource contention only among cooperating managers; they realize no access control function with respect to uncooperative parties. SIZE (0..127) · OCTET STRING

The entity that configured this entry and is therefore using the resources assigned to it.

dsmonMatrixCtlStatus

1.3.6.1.2.1.16.26.1.6.1.1.10

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

The status of this dsmonMatrixCtlEntry. An entry MUST NOT exist in the active state unless all objects in the entry have an appropriate value. If this object is not equal to active(1), all associated entries in the dsmonMatrixSDTable and dsmonMatrixDSTable shall be deleted.

dsmonMatrixSDTable

1.3.6.1.2.1.16.26.1.6.2

Index: dsmonMatrixCtlIndex · dsmonMatrixTimeMark · dsmonAggGroupIndex · dsmonMatrixNLIndex · dsmonMatrixSourceAddress · dsmonMatrixDestAddress · dsmonMatrixALIndex

A list of application traffic matrix entries which collect statistics for conversations of a particular application protocol between two network-level addresses. This table is indexed first by the source address and then by the destination address to make it convenient to collect all statistics from a particular address. The probe will add to this table all pairs of addresses for all protocols seen in all packets with no MAC errors, and will increment octet and packet counts in the table for all packets with no MAC errors.

dsmonMatrixTimeMark

1.3.6.1.2.1.16.26.1.6.2.1.1

TimeFilterTo be used for the index to a table. Allows an application to download only those rows changed since a particular time. Note that this is not a history mechanism. Only current values of underlying objects are returned; saved instance values associated with particular values of sysUpTime are not. An entry is considered changed if the value of any object in the entry changes, if the row is created, or if any object in the entry is created or deleted. Note that deleted entries cannot be detected or downloaded. A time-filtered conceptual table is created by inserting a single object of SYNTAX TimeFilter as the first INDEX component in a copy of an existing basic conceptual table (i.e., any SEQUENCE without a TimeFilter INDEX component). Thus, for each conceptual entry 'I' in the basic table, there exists N conceptual entries in the time-filtered version, indexed N.I, where 'N' is equal to the value of sysUpTime. When an application retrieves conceptual instances from a time-filtered table, and an INDEX value is provided for the TimeFilter INDEX component 'N', the agent will only consider returning basic conceptual entries (e.g., 'fooColumn.N.I') if any column within the basic conceptual entry has changed since sysUpTime 'N'. If not, the basic conceptual entry will be ignored for the particular retrieval operation. When sysUpTime is equal to zero, this table shall be empty. One conceptual entry exists for each past value of sysUpTime, except that the whole table is purged should sysUpTime wrap. As an entry in a time-filtered table is updated (i.e., one of the columns in the basic conceptual table is changed), new conceptual entries are also created in the time-filtered version (which still shares the now updated object values with all other instances). The number of unique time-filtered instances that are created is determined by the value of sysUpTime at which the basic entry was last updated. One unique instance will exist for each value of sysUpTime at the last update time for the row. However, a new TimeFilter index instance is created for each new sysUpTime value. The TimeFilter index values not associated with entry updates are called duplicate time-filtered instances. After some deployment experience, it has been determined that a time-filtered table is more efficient if the agent stops a MIB walk operation by skipping over rows with a TimeFilter index value higher than the value in the received GetNext/GetBulk request. That is, instead of incrementing a TimeFilter index value, the agent will continue to the next object or table. As a consequence, GetNext or GetBulk operations will provide only one pass through a time-filtered table. It is suggested that an agent implement a time-filtered table in this manner to improve performance and avoid a MIB walk getting stuck in time-filtered tables. It is, however, still acceptable for an agent to implement a time-filtered table in the traditional manner (i.e., every conceptual time-filtered instance is returned in GetNext and GetBulk PDU responses), and management applications must be able to deal with such traditional implementations. See the appendix for further discussion of this textual convention. The following example is provided to demonstrate TimeFilter behavior: Consider the following basic conceptual table, basicFooTable. (Note that the basic version of a time-filtered table may not actually be defined.) basicFooTable: basicFooTable ... INDEX { fooIndex } BasicFooEntry { fooIndex Integer32, fooCounts Counter32 } For this example, the basicFooTable contains two static conceptual entries (fooIndex equals '1' and '2'), created at time zero. It also contains one dynamic conceptual entry (fooIndex equals '3'), which is created at time '3' and deleted at time '7'. The time-filtered version of the basicFooTable could be defined as follows: FooTable: fooTable ... INDEX { fooTimeMark, fooIndex } FooEntry { fooTimeMark TimeFilter, fooIndex Integer32, fooCounts Counter32 } Note that entries exist in the time-filtered conceptual table only if they actually exist in the underlying (basic) table. For this example, the fooTable will have three underlying basic entries (fooIndex == 1, 2, and 3), with the following activity (for sysUpTime equal 0 to 9): - fooEntry.N.1 is created at time '0' and most recently updated at time '6' to the value '5'. - fooEntry.N.2 is created at time '0' and most recently updated at time '8' to the value '9'. - fooEntry.N.3 is created at time '3', updated at time '5' to the value '17', and deleted at time '7'. The following tables show the values that would be returned for MIB walk operations with various TimeFilter values, done at different times. An application issues a retrieval request at time 'T', with a TimeFilter value, 'N' (typically set to a lower value, such as the value of sysUpTime at the last polling cycle). The following values would be returned in a MIB walk of fooCounts.N if T equals '0' and N equals '0': fooCounts.N.I Value ========================== fooCounts.0.1 0 fooCounts.0.2 0 Note that nothing is returned for fooCounts.0.3, since that entry does not exist at sysUpTime equals '0'. The following values would be returned in a full (traditional) MIB walk of fooCounts.N if T equals '3' and N equals '0': fooCounts.N.I Value ======================= fooCounts.0.1 0 fooCounts.0.2 0 fooCounts.0.3 0 fooCounts.1.3 0 fooCounts.2.3 0 fooCounts.3.3 0 Note that there are no instances for T equals 1 or 2 for the first two values of N, as these entries did not change since they were created at time '0'. Note that the current value for 'fooCounts.N.3' is returned here, even for values of N less than '3' (when the entry was created). The agent only considers the current existence of an entry in the TimeFilter algorithm, not the time when the entry was created. Note that the instances 'fooCounts.0.3', 'fooCounts.1.3', and 'fooCounts.2.3' are duplicates and can be suppressed by the agent in a MIB walk. The following values would be returned in a full (traditional) MIB walk of fooCounts.N if T equals '6' and N equals '3': fooCounts.N.I Value ======================= fooCounts.3.1 5 fooCounts.3.3 17 fooCounts.4.1 5 fooCounts.4.3 17 fooCounts.5.1 5 fooCounts.5.3 17 fooCounts.6.1 5 Note that no instances for entry 'fooCounts.N.2' are returned, since it has not changed since time '3'. Note that all instances except 'fooCounts.5.3' and 'fooCounts.6.1' are duplicates and can be suppressed by the agent in a MIB walk. The following values would be returned in a full (traditional) MIB walk of fooCounts.N if T equals '9' and N equals '6': fooCounts.N.I Value ======================= fooCounts.6.1 5 fooCounts.6.2 9 fooCounts.7.2 9 fooCounts.8.2 9 Note that no instances for entry 'fooCounts.N.3' are returned, since it was deleted at time '7'. Note that instances 'fooCounts.6.2' and 'fooCounts.7.2' are duplicates and can be suppressed by the agent in a MIB walk. · TimeTicks

The Time Filter index for this table. This object may be used by a management station to retrieve only rows which have been created or modified since a particular time. Note that the current value for a row are always returned and the TimeFilter is not a historical data archiving mechanism. Refer to RFC 2021 [RFC2021] for a detailed description of TimeFilter operation.

dsmonMatrixNLIndex

1.3.6.1.2.1.16.26.1.6.2.1.2

Integer32 (1..2147483647)

The protocolDirLocalIndex value of a protocolDirEntry representing the specific network layer protocol encapsulation associated with each entry, and the network protocol type of the dsmonMatrixSourceAddress and dsmonMatrixDestAddress objects.

dsmonMatrixSourceAddress

1.3.6.1.2.1.16.26.1.6.2.1.3

OCTET STRING SIZE (0..54)

The network source address for this dsmonMatrix entry. This is represented as an octet string with specific semantics and length as identified by the dsmonMatrixNLIndex component of the index. For example, if the dsmonMatrixNLIndex indicates an encapsulation of IPv4, this object is encoded as a length octet of 4, followed by the 4 octets of the IPv4 address, in network byte order.

dsmonMatrixDestAddress

1.3.6.1.2.1.16.26.1.6.2.1.4

OCTET STRING SIZE (0..54)

The network destination address for this dsmonMatrix entry. This is represented as an octet string with specific semantics and length as identified by the dsmonMatrixNLIndex component of the index. For example, if the dsmonMatrixNLIndex indicates an encapsulation of IPv4, this object is encoded as a length octet of 4, followed by the 4 octets of the IPv4 address, in network byte order.

dsmonMatrixALIndex

1.3.6.1.2.1.16.26.1.6.2.1.5

Integer32 (1..2147483647)

The protocolDirLocalIndex value of the protocolDirEntry representing the specific application layer protocol associated with each entry. It MUST identify an protocolDirEntry which is a direct or indirect descendant of the protocolDirEntry identified by the associated dsmonMatrixNLIndex object.

dsmonMatrixSDPkts

1.3.6.1.2.1.16.26.1.6.2.1.6

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32 · packets

The number of packets of this protocol type (indicated by the associated dsmonMatrixALIndex object) without errors transmitted from the source address to the destination address since this entry was added to the dsmonMatrixSDTable. Note that this is the number of link- layer packets, so if a single network-layer packet is fragmented into several link-layer frames, this counter is incremented several times.

dsmonMatrixSDOvflPkts

1.3.6.1.2.1.16.26.1.6.2.1.7

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32

The number of times the associated dsmonMatrixSDPkts counter has overflowed, since this entry was added to the dsmonMatrixSDTable.

dsmonMatrixSDHCPkts

1.3.6.1.2.1.16.26.1.6.2.1.8

ZeroBasedCounter64This TC describes an object which counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^64 is reached. Provided that an application discovers the new object within the minimum time to wrap it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. Note that this textual convention does not retain all the semantics of the Counter64 base type. Specifically, a Counter64 has an arbitrary initial value, but objects defined with this TC are required to start at the value zero. This behavior is not likely to have any adverse effects on management applications which are expecting Counter64 semantics. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64 · packets

The 64-bit version of the dsmonMatrixSDPkts object. Note that this object will only be instantiated if the RMON agent supports High Capacity monitoring for a particular dataSource.

dsmonMatrixSDOctets

1.3.6.1.2.1.16.26.1.6.2.1.9

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32 · octets

The number of octets in packets of this protocol type transmitted from the source address to the destination address since this entry was added to the dsmonMatrixSDTable (excluding framing bits but including FCS octets), excluding those octets in packets that contained errors. Note this doesn't count just those octets in the particular protocol frames, but includes the entire packet that contained the protocol.

dsmonMatrixSDOvflOctets

1.3.6.1.2.1.16.26.1.6.2.1.10

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32

The number of times the associated dsmonMatrixSDOctets counter has overflowed, since this entry was added to the dsmonMatrixSDTable.

dsmonMatrixSDHCOctets

1.3.6.1.2.1.16.26.1.6.2.1.11

ZeroBasedCounter64This TC describes an object which counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^64 is reached. Provided that an application discovers the new object within the minimum time to wrap it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. Note that this textual convention does not retain all the semantics of the Counter64 base type. Specifically, a Counter64 has an arbitrary initial value, but objects defined with this TC are required to start at the value zero. This behavior is not likely to have any adverse effects on management applications which are expecting Counter64 semantics. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64 · octets

The 64-bit version of the dsmonMatrixSDPkts object. Note that this object will only be instantiated if the RMON agent supports High Capacity monitoring for a particular dataSource.

dsmonMatrixSDCreateTime

1.3.6.1.2.1.16.26.1.6.2.1.12

LastCreateTimeThis TC describes an object that stores the value of the sysUpTime object at the last time its entry was created. This can be used for polling applications to determine that an entry has been deleted and re-created between polls, causing an otherwise undetectable discontinuity in the data. If sysUpTime is reset to zero as a result of a re- initialization of the network management (sub)system, then the values of all LastCreateTime objects are also reset. However, after approximately 497 days without a re- initialization, the sysUpTime object will reach 2^^32-1 and then increment to zero; in this case, existing values of TimeStamp objects do not change. This can lead to ambiguities in the value of TimeStamp objects. · TimeTicks

The value of sysUpTime when this entry was last activated. This can be used by the management station to ensure that the entry has not been deleted and recreated between polls.

dsmonMatrixDSTable

1.3.6.1.2.1.16.26.1.6.3

Index: dsmonMatrixCtlIndex · dsmonMatrixTimeMark · dsmonAggGroupIndex · dsmonMatrixNLIndex · dsmonMatrixDestAddress · dsmonMatrixSourceAddress · dsmonMatrixALIndex

A list of application traffic matrix entries which collect statistics for conversations of a particular application protocol between two network-level addresses. This table is indexed first by the destination address and then by the source address to make it convenient to collect all statistics from a particular address. The probe will add to this table all pairs of addresses for all protocols seen in all packets with no MAC errors, and will increment octet and packet counts in the table for all packets with no MAC errors.

dsmonMatrixDSPkts

1.3.6.1.2.1.16.26.1.6.3.1.1

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32 · packets

The number of packets of this protocol type (indicated by the associated dsmonMatrixALIndex object) without errors transmitted from the source address to the destination address since this entry was added to the dsmonMatrixDSTable. Note that this is the number of link- layer packets, so if a single network-layer packet is fragmented into several link-layer frames, this counter is incremented several times.

dsmonMatrixDSOvflPkts

1.3.6.1.2.1.16.26.1.6.3.1.2

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32

The number of times the associated dsmonMatrixDSPkts counter has overflowed, since this entry was added to the dsmonMatrixDSTable.

dsmonMatrixDSHCPkts

1.3.6.1.2.1.16.26.1.6.3.1.3

ZeroBasedCounter64This TC describes an object which counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^64 is reached. Provided that an application discovers the new object within the minimum time to wrap it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. Note that this textual convention does not retain all the semantics of the Counter64 base type. Specifically, a Counter64 has an arbitrary initial value, but objects defined with this TC are required to start at the value zero. This behavior is not likely to have any adverse effects on management applications which are expecting Counter64 semantics. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64 · packets

The 64-bit version of the dsmonMatrixDSPkts object. Note that this object will only be instantiated if the RMON agent supports High Capacity monitoring for a particular dataSource.

dsmonMatrixDSOctets

1.3.6.1.2.1.16.26.1.6.3.1.4

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32 · octets

The number of octets in packets of this protocol type transmitted from the source address to the destination address since this entry was added to the dsmonMatrixDSTable (excluding framing bits but including FCS octets), excluding those octets in packets that contained errors. Note this doesn't count just those octets in the particular protocol frames, but includes the entire packet that contained the protocol.

dsmonMatrixDSOvflOctets

1.3.6.1.2.1.16.26.1.6.3.1.5

ZeroBasedCounter32This TC describes an object that counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^32 is reached. Provided that an application discovers the new object within the minimum time to wrap, it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically, this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. · Gauge32

The number of times the associated dsmonMatrixDSOctets counter has overflowed, since this entry was added to the dsmonMatrixDSTable.

dsmonMatrixDSHCOctets

1.3.6.1.2.1.16.26.1.6.3.1.6

ZeroBasedCounter64This TC describes an object which counts events with the following semantics: objects of this type will be set to zero(0) on creation and will thereafter count appropriate events, wrapping back to zero(0) when the value 2^64 is reached. Provided that an application discovers the new object within the minimum time to wrap it can use the initial value as a delta since it last polled the table of which this object is part. It is important for a management station to be aware of this minimum time and the actual time between polls, and to discard data if the actual time is too long or there is no defined minimum time. Typically this TC is used in tables where the INDEX space is constantly changing and/or the TimeFilter mechanism is in use. Note that this textual convention does not retain all the semantics of the Counter64 base type. Specifically, a Counter64 has an arbitrary initial value, but objects defined with this TC are required to start at the value zero. This behavior is not likely to have any adverse effects on management applications which are expecting Counter64 semantics. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64 · octets

The 64-bit version of the dsmonMatrixDSPkts object. Note that this object will only be instantiated if the RMON agent supports High Capacity monitoring for a particular dataSource.

dsmonMatrixDSCreateTime

1.3.6.1.2.1.16.26.1.6.3.1.7

LastCreateTimeThis TC describes an object that stores the value of the sysUpTime object at the last time its entry was created. This can be used for polling applications to determine that an entry has been deleted and re-created between polls, causing an otherwise undetectable discontinuity in the data. If sysUpTime is reset to zero as a result of a re- initialization of the network management (sub)system, then the values of all LastCreateTime objects are also reset. However, after approximately 497 days without a re- initialization, the sysUpTime object will reach 2^^32-1 and then increment to zero; in this case, existing values of TimeStamp objects do not change. This can lead to ambiguities in the value of TimeStamp objects. · TimeTicks

The value of sysUpTime when this entry was last activated. This can be used by the management station to ensure that the entry has not been deleted and recreated between polls.

dsmonMatrixTopNCtlTable

1.3.6.1.2.1.16.26.1.6.4

Index: dsmonMatrixTopNCtlIndex

A set of parameters that control the creation of a report of the top N dsmonMatrix entries according to a selected metric. Note that an agent MAY choose to limit the actual number of entries which may be created in this table. In this case, the agent SHOULD return an error-status of 'resourceUnavailable(13)', as per section 4.2.5 of the 'Protocol Operations for SNMPv2' specification [RFC1905].

dsmonMatrixTopNCtlIndex

1.3.6.1.2.1.16.26.1.6.4.1.1

Integer32 (1..65535)

An index that uniquely identifies an entry in the dsmonMatrixTopNCtlTable. Each such entry defines one Top N report prepared for one RMON dataSource.

dsmonMatrixTopNCtlMatrixIndex

1.3.6.1.2.1.16.26.1.6.4.1.2

Integer32 (1..65535)

The dsmonMatrixSDTable for which a top N report will be prepared on behalf of this entry. The dsmonMatrixSDTable is identified by the same value of the dsmonMatrixCtlIndex object. This object MUST NOT be modified if the associated dsmonMatrixTopNCtlStatus object is equal to active(1).

dsmonMatrixTopNCtlRateBase

1.3.6.1.2.1.16.26.1.6.4.1.3

INTEGER1 = dsmonMatrixTopNPkts2 = dsmonMatrixTopNOctets3 = dsmonMatrixTopNHCPkts4 = dsmonMatrixTopNHCOctets · Integer32

The variable for each dsmonMatrixSD entry that the dsmonMatrixTopNRate and dsmonMatrixTopNHCRate variables are based upon. Each dsmonMatrixTopN report generated on behalf of this control entry will be ranked in descending order, based on the associated dsmonMatrixSDTable counter, identified by this object. The following table identifies the dsmonMatrixSDTable counters associated with each enumeration: Enumeration RateBase MIB Objects ----------- -------------------- dsmonMatrixTopNPkts dsmonMatrixSDPkts dsmonMatrixTopNOctets dsmonMatrixSDOctets dsmonMatrixTopNHCPkts dsmonMatrixSDHCPkts dsmonMatrixTopNHCOctets dsmonMatrixSDHCOctets The following enumerations are only available if the agent supports High Capacity monitoring: dsmonMatrixTopNHCPkts dsmonMatrixTopNHCOctets This object MUST NOT be modified if the associated dsmonMatrixTopNCtlStatus object is equal to active(1).

dsmonMatrixTopNCtlTimeRemaining

1.3.6.1.2.1.16.26.1.6.4.1.4

Integer32 (0..2147483647) · seconds

The number of seconds left in the report currently being collected. When this object is modified by the management station, a new collection is started, possibly aborting a currently running report. The new value is used as the requested duration of this report, and is immediately loaded into the associated dsmonMatrixTopNCtlDuration object. When the report finishes, the probe will automatically start another collection with the same initial value of dsmonMatrixTopNCtlTimeRemaining. Thus the management station may simply read the resulting reports repeatedly, checking the startTime and duration each time to ensure that a report was not missed or that the report parameters were not changed. While the value of this object is non-zero, it decrements by one per second until it reaches zero. At the time that this object decrements to zero, the report is made accessible in the dsmonMatrixTopNTable, overwriting any report that may be there. When this object is modified by the management station, any associated entries in the dsmonMatrixTopNTable shall be deleted.

dsmonMatrixTopNCtlGeneratedRpts

1.3.6.1.2.1.16.26.1.6.4.1.5

Counter32 · reports

The number of reports that have been generated by this entry.

dsmonMatrixTopNCtlDuration

1.3.6.1.2.1.16.26.1.6.4.1.6

Integer32 (0..2147483647) · seconds

The number of seconds that this report has collected during the last sampling interval. When the associated dsmonMatrixTopNCtlTimeRemaining object is set, this object shall be set by the probe to the same value and shall not be modified until the next time the dsmonMatrixTopNCtlTimeRemaining is set. This value shall be zero if no reports have been requested for this dsmonMatrixTopNCtlEntry.

dsmonMatrixTopNCtlRequestedSize

1.3.6.1.2.1.16.26.1.6.4.1.7

Integer32 (0..2147483647) · table entries

The maximum number of dsmonMatrix entries requested for this report. When this object is created or modified, the probe SHOULD set dsmonMatrixTopNCtlGrantedSize as closely to this object as is possible for the particular probe implementation and available resources.

dsmonMatrixTopNCtlGrantedSize

1.3.6.1.2.1.16.26.1.6.4.1.8

Integer32 (0..2147483647) · table entries

The maximum number of dsmonMatrix entries in this report. When the associated dsmonMatrixTopNCtlRequestedSize object is created or modified, the probe SHOULD set this object as closely to the requested value as is possible for the particular implementation and available resources. The probe MUST NOT lower this value except as a result of a set to the associated dsmonMatrixTopNCtlRequestedSize object. Protocol entries with the highest value of dsmonMatrixTopNRate or dsmonMatrixTopNHCRate (depending on the value of the associated dsmonMatrixTopNCtlRateBase object) shall be placed in this table in decreasing order of this rate until there is no more room or until there are no more dsmonMatrix entries.

dsmonMatrixTopNCtlStartTime

1.3.6.1.2.1.16.26.1.6.4.1.9

TimeStampThe value of the sysUpTime object at which a specific occurrence happened. The specific occurrence must be defined in the description of any object defined using this type. If sysUpTime is reset to zero as a result of a re- initialization of the network management (sub)system, then the values of all TimeStamp objects are also reset. However, after approximately 497 days without a re- initialization, the sysUpTime object will reach 2^^32-1 and then increment around to zero; in this case, existing values of TimeStamp objects do not change. This can lead to ambiguities in the value of TimeStamp objects. · TimeTicks

The value of sysUpTime when this top N report was last started. In other words, this is the time that the associated dsmonMatrixTopNCtlTimeRemaining object was modified to start the requested report or the time the report was last automatically (re)started. This object may be used by the management station to determine if a report was missed or not.

dsmonMatrixTopNCtlOwner

1.3.6.1.2.1.16.26.1.6.4.1.10

OwnerStringThis data type is used to model an administratively assigned name of the owner of a resource. Implementations must accept values composed of well-formed NVT ASCII sequences. In addition, implementations should accept values composed of well-formed UTF-8 sequences. It is suggested that this name contain one or more of the following: IP address, management station name, network manager's name, location, or phone number. In some cases the agent itself will be the owner of an entry. In these cases, this string shall be set to a string starting with 'monitor'. SNMP access control is articulated entirely in terms of the contents of MIB views; access to a particular SNMP object instance depends only upon its presence or absence in a particular MIB view and never upon its value or the value of related object instances. Thus, objects of this type afford resolution of resource contention only among cooperating managers; they realize no access control function with respect to uncooperative parties. SIZE (0..127) · OCTET STRING

The entity that configured this entry and is therefore using the resources assigned to it.

dsmonMatrixTopNCtlStatus

1.3.6.1.2.1.16.26.1.6.4.1.11

RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].) The status column has six defined values: - `active', which indicates that the conceptual row is available for use by the managed device; - `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device; - `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated); - `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device; - `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row. Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management protocol retrieval operation: `notReady', `notInService' or `active'. That is, when queried, an existing conceptual row has only three states: it is either available for use by the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady'). NOTE WELL This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'. Also note that whenever any elements of a row exist, the RowStatus column must also exist. To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram: STATE +--------------+-----------+-------------+------------- | A | B | C | D | |status col.|status column| |status column | is | is |status column ACTION |does not exist| notReady | notInService| is active --------------+--------------+-----------+-------------+------------- set status |noError ->D|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndGo |inconsistent- | | | | Value| | | --------------+--------------+-----------+-------------+------------- set status |noError see 1|inconsist- |inconsistent-|inconsistent- column to | or | entValue| Value| Value createAndWait |wrongValue | | | --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError column to | Value| entValue| | active | | | | | | or | | | | | | | |see 2 ->D|see 8 ->D| ->D --------------+--------------+-----------+-------------+------------- set status |inconsistent- |inconsist- |noError |noError ->C column to | Value| entValue| | notInService | | | | | | or | | or | | | | | |see 3 ->C| ->C|see 6 --------------+--------------+-----------+-------------+------------- set status |noError |noError |noError |noError ->A column to | | | | or destroy | ->A| ->A| ->A|see 7 --------------+--------------+-----------+-------------+------------- set any other |see 4 |noError |noError |see 5 column to some| | | | value | | see 1| ->C| ->D --------------+--------------+-----------+-------------+------------- (1) goto B or C, depending on information available to the agent. (2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D. (3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C. (4) at the discretion of the agent, the return value may be either: inconsistentName: because the agent does not choose to create such an instance when the corresponding RowStatus instance does not exist, or inconsistentValue: if the supplied value is inconsistent with the state of some other MIB object's value, or noError: because the agent chooses to create the instance. If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A. (5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned. (6) the return value can indicate one of the following errors: wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated. (7) the return value can indicate the following error: inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated. (8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue. NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc. Conceptual Row Creation There are four potential interactions when creating a conceptual row: selecting an instance-identifier which is not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device. Interaction 1: Selecting an Instance-Identifier The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics. In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.) Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different. Finally, the management station could select a pseudo-random number to use as the index. In the event that this index was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation. A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used. Interaction 2: Creating the Conceptual Row Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions. Interaction 2a: Creating and Activating the Conceptual Row The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes: - a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'. When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information available to the agent is provided by two sources: the management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row. NOTE WELL Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm. Interaction 2b: Negotiating the Creation of the Conceptual Row The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the columns indicated by its column requirements.) Otherwise, the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3. Interaction 3: Initializing non-defaulted Objects The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes: - a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column. - the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column. - the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column. If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4. Interaction 4: Making the Conceptual Row Available Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'. NOTE WELL A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device. If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row. Conceptual Row Suspension When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified). Conceptual Row Deletion For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady', `notInService' or `active'.) If the operation succeeds, then all instances associated with the conceptual row are immediately removed. · Integer32

The status of this dsmonMatrixTopNCtlEntry. An entry MUST NOT exist in the active state unless all objects in the entry have an appropriate value. If this object is not equal to active(1), all associated entries in the dsmonMatrixTopNTable shall be deleted by the agent.

dsmonMatrixTopNTable

1.3.6.1.2.1.16.26.1.6.5

Index: dsmonMatrixTopNCtlIndex · dsmonMatrixTopNIndex

A set of statistics for those dsmonMatrix entries that have counted the highest number of octets or packets. If the dsmonAggControlLocked object is equal to 'false', then all entries in this table SHALL be deleted, and the agent will not process TopN reports on behalf of any dsmonMatrixTopNCtlEntry. When the dsmonAggControlLocked object is set to 'true', then particular reports SHOULD be restarted from the beginning, on behalf of all active rows in the dsmonMatrixTopNCtlTable. Note that dsmonMatrix entries which did not increment at all during the report interval SHOULD NOT be included in dsmonMatrixTopN reports.

dsmonMatrixTopNIndex

1.3.6.1.2.1.16.26.1.6.5.1.1

Integer32 (1..2147483647)

An index that uniquely identifies an entry in the dsmonMatrixTopNTable among those in the same report. This index is between 1 and N, where N is the number of entries in this report.

dsmonMatrixTopNAggGroup

1.3.6.1.2.1.16.26.1.6.5.1.2

DsmonCounterAggGroupIndexThis TC describes a data type which identifies a DSMON counter aggregation group, which is an arbitrary grouping of conceptual counters, for monitoring purposes only. The range for this data type begins with zero (instead of one), to allow for a direct mapping between counter indexing schemes that start at zero (e.g. DSCP values in packets) and counter aggregation group values. (0..2147483647) · Integer32

The counter aggregation group index value associated with host identified in this entry. This object identifies the dsmonAggGroupEntry with the same dsmonAggControlIndex value as the associated dsmonMatrixCtlAggProfile object and the same dsmonAggGroupIndex value as this object.

dsmonMatrixTopNNLIndex

1.3.6.1.2.1.16.26.1.6.5.1.3

Integer32 (1..2147483647)

The protocolDirLocalIndex value which identifies the protocol associated with the dsmonMatrixTopNSourceAddress and dsmonMatrixTopNDestAddress objects in this entry. If the protocolDirEntry associated with the protocolDirLocalIndex with the same value as this object is de-activated or deleted, then the agent MUST delete this dsmonMatrixTopN entry.

dsmonMatrixTopNSourceAddress

1.3.6.1.2.1.16.26.1.6.5.1.4

OCTET STRING

The dsmonMatrixSDSourceAddress value for the source network host identified in this entry. The associated dsmonMatrixTopNNLIndex object identifies the network protocol type and the encoding rules for this object.

dsmonMatrixTopNDestAddress

1.3.6.1.2.1.16.26.1.6.5.1.5

OCTET STRING

The dsmonMatrixSDDestAddress value for the destination network host identified in this entry. The associated dsmonMatrixTopNNLIndex object identifies the network protocol type and the encoding rules for this object.

dsmonMatrixTopNALIndex

1.3.6.1.2.1.16.26.1.6.5.1.6

Integer32 (1..2147483647)

The protocolDirLocalIndex value which identifies the application protocol associated with this entry. If the protocolDirEntry associated with the protocolDirLocalIndex with the same value as this object is de-activated or deleted, then the agent MUST delete this dsmonMatrixTopN entry.

dsmonMatrixTopNPktRate

1.3.6.1.2.1.16.26.1.6.5.1.7

Gauge32

The number of packets seen of this protocol from the source host to the destination host during this sampling interval, counted using the rules for counting the dsmonMatrixSDPkts object. If the value of dsmonMatrixTopNCtlRateBase is dsmonMatrixTopNPkts, this variable will be used to sort this report. If the value of the dsmonMatrixTopNCtlRateBase is dsmonMatrixTopNHCPkts or dsmonMatrixTopNHCOctets, then this object will contain the the least significant 32 bits of the associated dsmonMatrixTopNHCPktRate object.

dsmonMatrixTopNPktRateOvfl

1.3.6.1.2.1.16.26.1.6.5.1.8

Gauge32

The most significant 32 bits of the associated dsmonMatrixTopNHCPktRate object. If the associated dsmonMatrixTopNCtlRateBase is equal to dsmonMatrixTopNHCPkts or dsmonMatrixTopNHCOctets, then this object will contain the most significant 32 bits of the associated dsmonMatrixTopNHCPktRate object, otherwise this object will contain the value zero. The agent MAY choose not to instantiate this object if High Capacity monitoring is not supported.

dsmonMatrixTopNHCPktRate

1.3.6.1.2.1.16.26.1.6.5.1.9

CounterBasedGauge64The CounterBasedGauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value can not be greater than 2^64-1 (18446744073709551615 decimal), and the minimum value can not be smaller than 0. The value of a CounterBasedGauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the CounterBasedGauge64 also decreases (increases). Note that this TC is not strictly supported in SMIv2, because the 'always increasing' and 'counter wrap' semantics associated with the Counter64 base type are not preserved. It is possible that management applications which rely solely upon the (Counter64) ASN.1 tag to determine object semantics will mistakenly operate upon objects of this type as they would for Counter64 objects. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64

The number of packets seen of this protocol from the source host to the destination host during this sampling interval, counted using the rules for counting the dsmonMatrixSDHCPkts object. If the value of dsmonMatrixTopNCtlRateBase is dsmonMatrixTopNHCPkts, this variable will be used to sort this report. The agent MAY choose not to instantiate this object if High Capacity monitoring is not supported.

dsmonMatrixTopNRevPktRate

1.3.6.1.2.1.16.26.1.6.5.1.10

Gauge32

The number of packets seen of this protocol from the destination host to the source host during this sampling interval, counted using the rules for counting the dsmonMatrixDSPkts object (note that the corresponding dsmonMatrixSDPkts object selected is the one whose source address is equal to dsmonMatrixTopNDestAddress and whose destination address is equal to dsmonMatrixTopNSourceAddress.)

dsmonMatrixTopNRevPktRateOvfl

1.3.6.1.2.1.16.26.1.6.5.1.11

Gauge32

The most significant 32 bits of the associated dsmonMatrixTopNHCRevPktRate object. If the associated dsmonMatrixTopNCtlRateBase is equal to dsmonMatrixTopNHCPkts or dsmonMatrixTopNHCOCtets, then this object will contain the most significant 32 bits of the associated dsmonMatrixTopNHCRevPktRate object, otherwise this object will contain the value zero. The agent MAY choose not to instantiate this object if High Capacity monitoring is not supported.

dsmonMatrixTopNHCRevPktRate

1.3.6.1.2.1.16.26.1.6.5.1.12

CounterBasedGauge64The CounterBasedGauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value can not be greater than 2^64-1 (18446744073709551615 decimal), and the minimum value can not be smaller than 0. The value of a CounterBasedGauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the CounterBasedGauge64 also decreases (increases). Note that this TC is not strictly supported in SMIv2, because the 'always increasing' and 'counter wrap' semantics associated with the Counter64 base type are not preserved. It is possible that management applications which rely solely upon the (Counter64) ASN.1 tag to determine object semantics will mistakenly operate upon objects of this type as they would for Counter64 objects. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64

The number of packets seen of this protocol from the destination host to the source host during this sampling interval, counted using the rules for counting the dsmonMatrixDSHCPkts object (note that the corresponding dsmonMatrixSDHCPkts object selected is the one whose source address is equal to dsmonMatrixTopNDestAddress and whose destination address is equal to dsmonMatrixTopNSourceAddress.) The agent MAY choose not to instantiate this object if High Capacity monitoring is not supported.

dsmonMatrixTopNOctetRate

1.3.6.1.2.1.16.26.1.6.5.1.13

Gauge32

The number of octets seen of this protocol from the source host to the destination host during this sampling interval, counted using the rules for counting the dsmonMatrixSDOctets object. If the value of dsmonMatrixTopNCtlRateBase is dsmonMatrixTopNOctets, this variable will be used to sort this report. If the value of the dsmonMatrixTopNCtlRateBase is dsmonMatrixTopNHCPkts or dsmonMatrixTopNHCOctets, then this object will contain the the least significant 32 bits of the associated dsmonMatrixTopNHCPktRate object.

dsmonMatrixTopNOctetRateOvfl

1.3.6.1.2.1.16.26.1.6.5.1.14

Gauge32

The most significant 32 bits of the associated dsmonMatrixTopNHCOctetRate object. If the associated dsmonMatrixTopNCtlRateBase is equal to dsmonMatrixTopNHCPkts or dsmonMatrixTopNHCOctets, then this object will contain the most significant 32 bits of the associated dsmonMatrixTopNHCOctetRate object, otherwise this object will contain the value zero. The agent MAY choose not to instantiate this object if High Capacity monitoring is not supported.

dsmonMatrixTopNHCOctetRate

1.3.6.1.2.1.16.26.1.6.5.1.15

CounterBasedGauge64The CounterBasedGauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value can not be greater than 2^64-1 (18446744073709551615 decimal), and the minimum value can not be smaller than 0. The value of a CounterBasedGauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the CounterBasedGauge64 also decreases (increases). Note that this TC is not strictly supported in SMIv2, because the 'always increasing' and 'counter wrap' semantics associated with the Counter64 base type are not preserved. It is possible that management applications which rely solely upon the (Counter64) ASN.1 tag to determine object semantics will mistakenly operate upon objects of this type as they would for Counter64 objects. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64

The number of octets seen of this protocol from the source host to the destination host during this sampling interval, counted using the rules for counting the dsmonMatrixSDHCOctets object. If the value of dsmonMatrixTopNCtlRateBase is dsmonMatrixTopNHCOctets, this variable will be used to sort this report. The agent MAY choose not to instantiate this object if High Capacity monitoring is not supported.

dsmonMatrixTopNRevOctetRate

1.3.6.1.2.1.16.26.1.6.5.1.16

Gauge32

The number of octets seen of this protocol from the destination host to the source host during this sampling interval, counted using the rules for counting the dsmonMatrixDSOctets object (note that the corresponding dsmonMatrixSDOctets object selected is the one whose source address is equal to dsmonMatrixTopNDestAddress and whose destination address is equal to dsmonMatrixTopNSourceAddress.)

dsmonMatrixTopNRevOctetRateOvfl

1.3.6.1.2.1.16.26.1.6.5.1.17

Gauge32

The most significant 32 bits of the associated dsmonMatrixTopNHCRevOctetRate object. If the associated dsmonMatrixTopNCtlRateBase is equal to dsmonMatrixTopNHCPkts or dsmonMatrixTopNHCOCtets, then this object will contain the most significant 32 bits of the associated dsmonMatrixTopNHCRevPktRate object, otherwise this object will contain the value zero. The agent MAY choose not to instantiate this object if High Capacity monitoring is not supported.

dsmonMatrixTopNHCRevOctetRate

1.3.6.1.2.1.16.26.1.6.5.1.18

CounterBasedGauge64The CounterBasedGauge64 type represents a non-negative integer, which may increase or decrease, but shall never exceed a maximum value, nor fall below a minimum value. The maximum value can not be greater than 2^64-1 (18446744073709551615 decimal), and the minimum value can not be smaller than 0. The value of a CounterBasedGauge64 has its maximum value whenever the information being modeled is greater than or equal to its maximum value, and has its minimum value whenever the information being modeled is smaller than or equal to its minimum value. If the information being modeled subsequently decreases below (increases above) the maximum (minimum) value, the CounterBasedGauge64 also decreases (increases). Note that this TC is not strictly supported in SMIv2, because the 'always increasing' and 'counter wrap' semantics associated with the Counter64 base type are not preserved. It is possible that management applications which rely solely upon the (Counter64) ASN.1 tag to determine object semantics will mistakenly operate upon objects of this type as they would for Counter64 objects. This textual convention represents a limited and short-term solution, and may be deprecated as a long term solution is defined and deployed to replace it. (0..18446744073709551615) · Counter64

The number of octets seen of this protocol from the destination host to the source host during this sampling interval, counted using the rules for counting the dsmonMatrixDSHCOctets object (note that the corresponding dsmonMatrixSDHCOctets object selected is the one whose source address is equal to dsmonMatrixTopNDestAddress and whose destination address is equal to dsmonMatrixTopNSourceAddress.) The agent MAY choose not to instantiate this object if High Capacity monitoring is not supported.

↑ To TOC