Cisco Embedded Resource Manager (ERM) MIB.
The Embedded Resource Manager (ERM) is a framework which helps in effectively managing resources such as cpu, memory, buffers, etc. There are two important scenarios where the ERM framework would be useful:
1. Resource Depletion - how to gracefully handle a situation where the system runs out of a finite resource.
2. Resource Separation - how to share resources fairly between different entities in the system such that activity of one entity does not adversely affect others.
The ERM framework has the following entities:
1. Resource Owner
Resource Owner (RO) provides resources to one or more resource users. Example: cpu, memory and buffer.
The resource owner doesn't mean the physical resource. For example, 'memory' resource owner would actually mean the memory manager rather than the physical memory.
2. Resource User Type
Resource User Type (RUT) is a template which defines a set of resource owners from where resources can be obtained by any of the resource users instantiated from the resource user type.
3. Resource User
Resource User (RU) is a logical entity or application that consumes one or more resources. Resource users are instantiated from the Resource User Type. Resource user can also be called as 'instance of a resource user type'. A resource user registers with a resource user type and thus it is indirectly registered with all resource owners defined by the resource user type.
4. Resource User Group
Resource User Group (RG) is a logical entity which contains group of resource users. It would hence forth be referred as Resource Group. In some cases (for example, multiple users with same name), user may want to set threshold value for sum of resource utilized by a group of resource users. In such case, those resource users can be grouped/added under a resource group. Then, user can apply a resource policy to the resource group.
5. Resource Usage Monitor
This is also called as Resource Monitor (RM). The resource monitor is a logical entity or application that monitors resource owner, resource user, resource policy and resource owner <-> resource user relationship. When any applied resource policy is violated, all resource monitors monitoring the resource policy will be notified and the resource monitor can take appropriate action based on the resource owner and resource user attributes.
The ERM framework allows three types of thresholding:
1) System Global Thresholding
When total utilization of a resource exceeds the applied global rising threshold value, all resource users which consume resources from the concerned resource owner are notified to take appropriate action. The notification order is determined by priority of the resource users. Resource users with a lower priority are notified first, so as to enable lower priority resource users to reduce its resource consumption prior to any higher priority resource users. This order prevents higher priority resource users to start freeing up their resource, thereby not affecting their performance.
2) User Local Thresholding
When utilization of a resource by a specific resource user exceeds the applied user local rising threshold value, a notification is sent *only* to the concerned resource user. The user local thresholding method can be used to prevent a resource user from monopolizing any available resources.
3) Per User Global Thresholding
When total utilization of a resource exceeds the applied per user global rising threshold value, a notification is sent *only* to the concerned resource user. Each resource user can have its own per user global threshold value (per resource owner). Per User Global Thresholding is similar to System Global Thresholding, except that notification for Per User Global Threshold violation is sent only to the corresponding resource user. The main purpose of the Per User Global Thresholding is that a resource user can take preventive actions based on the global resource utilization of a resource.
The Embedded Resource Manager (ERM) framework allows applying and monitoring threshold limit for usage of resources such as cpu, memory, buffer, etc. Exceeding any applied rising threshold value will trigger an 'up' notification to relevant resource user(s) and resource monitor(s) based on the type of violated resource policy. After the 'up' notification, if the utilization goes below the falling threshold value, a 'down' notification will be sent to the resource user(s) and resource monitor(s). The 'up' and 'down' notifications do not mean the SNMP notifications/traps. Rising threshold value and falling threshold value should be different to avoid flapping.
The ERM framework enables configuration of resource policy in which rising/falling threshold values for a set of resource owners can be specified. There are two types of resource policies which can be configured.
1) Global Resource Policy There can be only one global resource policy applied in the system at any point of time, though multiple global resource policies can be configured. On violation of a applied global resource policy, all resource users (which consume resources from the concerned resource owner) and resource monitors (which watch the concerned resource owner) will be notified to take appropriate action.
2) Local Resource Policy The local resource policy is configured for a specific resource user type. This policy can be applied for a resource user (or group) of the same resource user type. A local resource policy can be applied for more than one resource users (or groups). Both user local thresholding and per user global thresholding can be configured under a local resource policy. On violation of any local resource policy, only those resource users on which the violated resource policy was applied, will be notified in order to take appropriate action.
Whenever a resource is consumed, current utilization of the resource will be compared against the applied rising threshold value. The ERM framework provides a mechanism to send notifications to resource user(s) and resource monitor(s) whenever resource utilization exceeds any applied rising threshold value or falls below any applied falling threshold value. In such situations, the resource user(s) can take appropriate corrective action (for example, limiting or avoiding resource consumption). Thus, the ERM framework helps in preventing catastrophic system failures caused by high levels of resource depletion. The ERM framework can be extended to all kinds of resources (for example, incoming control plane packets) that need to be managed.
The ERM MIB module facilitates the following operations:
1. Getting information about all the above mentioned ERM entities available in a managed system. 2. Creating/modifying/removing a resource policy. 3. Creating/modifying/removing a threshold configuration for a particular resource policy. 4. Creating/removing a resource group. 5. Adding/removing a resource user to/from a particular resource group. 6. Applying global resource policy. 7. Applying local resource policy for a resource user or resource group.
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
This is a textual string containing name of the global resource policy applied in the system. If global resource policy is not applied in the system, then this scalar object will contain zero-length string. A global resource policy can be applied to the system by setting this scalar object to any global resource policy name (i.e. cermPolicyName) present in the cermConfigPolicyTable. Setting this object to zero-length string, will undo any applied global resource policy in the system.
cermNotifsThresholdSeverity
1.3.6.1.4.1.9.9.510.1.4.1
CermThresholdSeverity1 = minor2 = major3 = criticalThis indicates the severity of thresholds. The threshold severity is used to reflect the severity of resource utilization related problem in the system. There are three thresholding severity levels defined in the ERM:
1. Minor Violation of 'minor' thresholding indicates a minor problem (related to resource utilization) in the system. 2. Major Violation of 'major' thresholding indicates a major problem (related to resource utilization) in the system. 3. Critical Violation of 'critical' thresholding indicates a critical problem (related to resource utilization) in the system. · Integer32
This object indicates the severity of the threshold configuration.
cermNotifsThresholdIsUserGlob
1.3.6.1.4.1.9.9.510.1.4.2
TruthValue1 = true2 = falseRepresents a boolean value. · Integer32
This object indicates whether the threshold configuration is per user global thresholding or not.
cermNotifsThresholdValue
1.3.6.1.4.1.9.9.510.1.4.3
CermThresholdThis indicates the threshold value for resource utilization, in percentage. (1..4294967295) · Unsigned32
This object indicates the rising (or falling) threshold value.
cermNotifsDirection
1.3.6.1.4.1.9.9.510.1.4.4
CermNotificationDirection1 = up2 = downThis indicates the direction/cause of the ERM notifications. There are two ERM notification directions defined in the ERM:
1. Up Notification The 'up' notification would be triggered by a resource owner when utilization of the corresponding resource exceeds an applied rising threshold value for the resource owner. The 'up' notification indicates that utilization for a resource owner has gone above an applied rising threshold.
2. Down Notification The 'down' notification would be triggered by a resource owner when resource utilization of the resource owner falls below (after exceeding an applied rising threshold value) any applied falling threshold value for the resource owner. The 'down' notification indicates that utilization for a resource owner has come down to normal state after exceeding an applied rising threshold. · Integer32
This object indicates the direction of the ERM notification.
cermNotifsPolicyName
1.3.6.1.4.1.9.9.510.1.4.5
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..255) · OCTET STRING · hint 255t
This object indicates the name of the resource policy.
cermNotifsEnabled
1.3.6.1.4.1.9.9.510.1.5.1
TruthValue1 = true2 = falseRepresents a boolean value. · Integer32
This object indicates whether generation of traps for ERM policy violation notifications are allowed or not.
When this object is set to 'true', it allows generation of traps for the ERM policy violation related notifications ciscoErmGlobalPolicyViolation and ciscoErmLocalPolicyViolation.
This table contains information about each resource owner in the system.
Each resource owner maintains a list of resource users and performs the following:
a) Accounting and Thresholding
Accounting and thresholding involves accounting of resources allocated to each resource user and using threshold limits for notifying resource user(s) and resource usage monitor(s) about violations. Accounting is done by each resource owner.
The ERM framework allows user to configure thresholding values for each resource owner. When resource utilization of a resource owner exceeds an applied threshold value, the resource owner will send notification to relevant resource user(s).
b) Notifications Sent and Actions Taken
In case of system global thresholding, whenever total resource utilization of a resource owner exceeds an applied rising threshold value, the resource owner will send an 'up' notification to the ERM framework. Whenever total resource utilization of the same resource owner falls below the corresponding falling threshold value (after crossing the rising threshold value), the resource owner will sent a 'down' notification to the ERM framework.
On receiving the 'up' notification, resource user(s) is(are) expected to take appropriate action by freeing the resource or limiting the resource consumption. The resource owner may restrain from allocating resource to the resource user(s) in case of the resource user(s) not taking any action.
PhysicalIndexAn arbitrary value that uniquely identifies the physical entity. The value should be a small positive integer. Index values for different physical entities are not necessarily contiguous. (1..2147483647) · Integer32 · hint d
The index for this entry.
cermResOwnerSubEntityId
1.3.6.1.4.1.9.9.510.1.2.1.1.1
CermSubEntityIdThis indicates the sub-entity identifier. If a physical entity has multiple logical processing entities and these entities have its own set of resources, we use sub-entities to uniquely identiy these logical processing entities.
For example, if each process in the system has separate memory address space (i.e. memory address space is not shared between processes), then each process can be considered as a separate logical processing entity.
In such cases, the sub-entity identifier can be used to distinguish an ERM entity in one logical processing entity from others. Each sub-entity (i.e. logical processing entity) might have its own set of resources owners, resource user types, resource users, resource groups and resource monitors.
If the system doesn't have more than one logical processing entities, then sub-entity identifier may have zero value. · Unsigned32
This object indicates the sub-entity (i.e. logical processing entity in a physical entity) in which the resource owner is present.
cermResOwnerId
1.3.6.1.4.1.9.9.510.1.2.1.1.2
CermOwnerIdThis indicates the resource owner identifier. The resource owner identifier is used to uniquely identify a resource owner in the system. (1..4294967295) · Unsigned32
This object indicates the resource owner identifier. This object value is unique in a sub-entity.
cermResOwnerName
1.3.6.1.4.1.9.9.510.1.2.1.1.3
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 (1..64) · OCTET STRING · hint 255t
This is a textual string containing name of the resource owner. For example: cpu, memory.
cermResOwnerMeasurementUnit
1.3.6.1.4.1.9.9.510.1.2.1.1.4
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 (1..64) · OCTET STRING · hint 255t
This is a textual string containing unit of measurement for the resource owner.
For example, utilization of 'memory' and 'cpu' resource owners can be specified in terms of 'bytes' and 'percentage' respectively. In that case, this object value would be 'bytes' for the 'memory' resource owner and 'percentage' for the 'cpu' resource owner.
cermResOwnerThreshIsConfigurable
1.3.6.1.4.1.9.9.510.1.2.1.1.5
TruthValue1 = true2 = falseRepresents a boolean value. · Integer32
This is a flag indicating whether thresholding is configurable for the resource owner by users or not. Some resource owners may not allow users to configure resource utilization threshold values. This object value will be 'false' for such resource owners.
cermResOwnerResUserCount
1.3.6.1.4.1.9.9.510.1.2.1.1.6
Unsigned32
This object indicates the number of resource users which consume resources from the resource owner.
cermResOwnerResGroupCount
1.3.6.1.4.1.9.9.510.1.2.1.1.7
Unsigned32
This object indicates the number of resource groups which consume resources from the resource owner.
This table contains information about each sub-type for each resource owner in the cermResOwnerTable.
For example, lets consider that the 'memory' resource owner has two sub-types called 'processor' and 'io' in the system. Then, two entries (one is for 'processor' memory and another one is for 'io' memory) will be present in this table for the 'memory' resource owner.
If a resource owner does not have any sub-types, then this table will have an entry with the zero value for the cermResOwnerSubTypeId and zero-length string value for the cermResOwnerSubTypeName, for the corresponding resource owner.
PhysicalIndexAn arbitrary value that uniquely identifies the physical entity. The value should be a small positive integer. Index values for different physical entities are not necessarily contiguous. (1..2147483647) · Integer32 · hint d
The index for this entry.
cermResOwnerSubTypeId
1.3.6.1.4.1.9.9.510.1.2.2.1.1
Unsigned32
This object indicates the resource owner sub-type identifier. If the resource owner does not have any sub-types, this object value for the resource owner will be zero. Otherwise, it will have a non-zero value.
cermResOwnerSubTypeName
1.3.6.1.4.1.9.9.510.1.2.2.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
This is a textual string indicating name of the resource owner sub-type.
For example, 'processor' memory and 'io' memory are two sub-types in the 'memory' resource owner.
If the resource owner does not have any sub-types, this object value for the resource owner will be a zero-length string.
cermResOwnerSubTypeUsagePct
1.3.6.1.4.1.9.9.510.1.2.2.1.3
CermResUsagePctThis indicates the resource utilization value, in percentage. That means the percentage of resources utilized from a resource owner. · Unsigned32 · percentage
This object indicates the percentage of resource utilized for the resource owner sub-type.
cermResOwnerSubTypeUsage
1.3.6.1.4.1.9.9.510.1.2.2.1.4
Unsigned32
This object indicates the resource utilization, in the unit of measurement specified by the object cermResOwnerMeasurementUnit, for the corresponding resource owner sub-type.
cermResOwnerSubTypeMaxUsage
1.3.6.1.4.1.9.9.510.1.2.2.1.5
Unsigned32
This object indicates the maximum resource utilization since the system has been up, in the measurement unit specified by the object cermResOwnerMeasurementUnit, for the corresponding resource owner sub-type.
For example, if maximum utilization for the 'io' memory resource owner is 15000000 bytes since the system has been up, this object value for the 'io' memory resource owner would be 15000000.
If this object is not implemented for the resource owner sub-type, then value of this object would be zero.
cermResOwnerSubTypeGlobNotifSeverity
1.3.6.1.4.1.9.9.510.1.2.2.1.6
CermNotificationSeverity1 = none2 = minor3 = major4 = criticalThis indicates the severity of ERM notification that reflects the severity of resource utilization related problem. The following notification severites are defined in the ERM: 1. None This indicates that the system is running without violating any applied resource utilization threshold values. 2. Minor This indicates that a 'minor' severity level threshold has been violated in the system. 3. Major This indicates that a 'major' severity level threshold has been violated in the system. 4. Critical This indicates that a 'critical' severity level threshold has been violated in the system. · Integer32
This object indicates the current global notification severity level for the resource owner sub-type.
PhysicalIndexAn arbitrary value that uniquely identifies the physical entity. The value should be a small positive integer. Index values for different physical entities are not necessarily contiguous. (1..2147483647) · Integer32 · hint d
The index for this entry.
cermResOwnerSubTypeThreshSeverity
1.3.6.1.4.1.9.9.510.1.2.3.1.1
CermThresholdSeverity1 = minor2 = major3 = criticalThis indicates the severity of thresholds. The threshold severity is used to reflect the severity of resource utilization related problem in the system. There are three thresholding severity levels defined in the ERM:
1. Minor Violation of 'minor' thresholding indicates a minor problem (related to resource utilization) in the system. 2. Major Violation of 'major' thresholding indicates a major problem (related to resource utilization) in the system. 3. Critical Violation of 'critical' thresholding indicates a critical problem (related to resource utilization) in the system. · Integer32
This object identifies the threshold severity of an applied threshold configuration, for a resource owner sub-type.
cermResOwnerSubTypeRisingThresh
1.3.6.1.4.1.9.9.510.1.2.3.1.2
CermThresholdThis indicates the threshold value for resource utilization, in percentage. (1..4294967295) · Unsigned32
This object indicates the applied global rising threshold value for the resource owner sub-type.
When total resource utilization of the resource owner sub-type exceeds the rising threshold value set for it, the resource owner sends an 'up' notification to the ERM framework. If the ERM framework did not receive any 'down' notification from the same resource owner sub-type till the rising interval time (represented by cermResOwnerSubTypeRisingInterval) is elapsed, the 'up' notification will be sent to all resource users which consume resources from the resource owner.
The order of sending the 'up' notification will be based on priority of those resource users. Lowest priority resource user will get the 'up' notification first. Upon receiving the 'up' notification, the resource users can take appropriate action (for example, limiting consumption of the concerned resource).
cermResOwnerSubTypeRisingInterval
1.3.6.1.4.1.9.9.510.1.2.3.1.3
CermDampenIntervalThis indicates the dampening or observation interval time during which the variations in the resource utilization are not notified to any relevant resource user(s) or resource monitor(s). The interval is set to avoid unnecessary and unwanted notifications. (0..2592000) · Integer32 · seconds
This object indicates the dampening interval time for the global rising threshold, specified in the applied threshold configuration for the resource owner sub-type. Whenever the ERM framework gets an 'up' notification from the resource owner sub-type, it will wait till the rising interval time (represented by this object) is elapsed. If the ERM framework did not receive any 'down' notification from the same resource owner sub-type before the rising interval time is elapsed, it will send the 'up' notification to all resource users which consume resources from the resource owner. Otherwise, the 'up' notification will be dropped by the ERM framework.
If the global rising threshold is configured but the rising interval time is not configured in the applied threshold configuration for the resource owner sub-type, then default value would be taken. The default value is specific to the resource owner sub-type.
cermResOwnerSubTypeFallingThresh
1.3.6.1.4.1.9.9.510.1.2.3.1.4
CermThresholdThis indicates the threshold value for resource utilization, in percentage. (1..4294967295) · Unsigned32
This object indicates the applied global falling threshold value for the resource owner sub-type.
The global falling threshold value will be applicable only after an 'up' notification is sent by the resource owner. When resource utilization of the resource owner sub-type falls below the applied global falling threshold value (after crossing the corresponding global rising threshold value), the resource owner sub-type sends a 'down' notification to the ERM framework. If the ERM framework did not receive any 'up' notification from the same resource owner sub-type till the falling interval time (represented by the object cermResOwnerSubTypeFallingInterval) is elapsed, the 'down' notification will be sent to all resource users which consume resources from the concerned resource owner sub-type. The order of sending the 'down' notification will be based on priority of those resource users. Highest priority resource user will get the 'down' notification first. Upon receiving the 'down' notification, the resource users can start consuming the concerned resource as usual.
If the global rising threshold value is configured but the global falling threshold value is not configured in the applied threshold configuration for the resource owner sub-type, then default value would be taken. The default value is specific to the resource owner sub-type and may depend on the rising threshold value.
cermResOwnerSubTypeFallingInterval
1.3.6.1.4.1.9.9.510.1.2.3.1.5
CermDampenIntervalThis indicates the dampening or observation interval time during which the variations in the resource utilization are not notified to any relevant resource user(s) or resource monitor(s). The interval is set to avoid unnecessary and unwanted notifications. (0..2592000) · Integer32 · seconds
This object indicates the dampening interval time for the global falling threshold, specified in the applied threshold configuration for the resource owner sub-type. Whenever the ERM framework gets a 'down' notification from the resource owner sub-type, it will wait till the falling interval time (represented by this object) is elapsed. If the ERM framework did not receive any 'up' notification from the same resource owner sub-type before the falling interval time is elapsed, it will send the 'down' notification to all resource users which consume resources from the concerned resource owner sub-type. Otherwise, the 'down' notification will be dropped by the ERM framework.
If the global rising threshold is configured but the falling interval time is not configured in the applied threshold configuration for the resource owner sub-type, then default value would be taken. The default value is specific to the resource owner sub-type.
PhysicalIndexAn arbitrary value that uniquely identifies the physical entity. The value should be a small positive integer. Index values for different physical entities are not necessarily contiguous. (1..2147483647) · Integer32 · hint d
The index for this entry.
cermResUserTypeSubEntityId
1.3.6.1.4.1.9.9.510.1.2.4.1.1
CermSubEntityIdThis indicates the sub-entity identifier. If a physical entity has multiple logical processing entities and these entities have its own set of resources, we use sub-entities to uniquely identiy these logical processing entities.
For example, if each process in the system has separate memory address space (i.e. memory address space is not shared between processes), then each process can be considered as a separate logical processing entity.
In such cases, the sub-entity identifier can be used to distinguish an ERM entity in one logical processing entity from others. Each sub-entity (i.e. logical processing entity) might have its own set of resources owners, resource user types, resource users, resource groups and resource monitors.
If the system doesn't have more than one logical processing entities, then sub-entity identifier may have zero value. · Unsigned32
This object indicates the sub-entity (i.e. logical processing entity in a physical entity) in which the resource user type is present.
cermResUserTypeId
1.3.6.1.4.1.9.9.510.1.2.4.1.2
CermUserTypeIdThis indicates the resource user type identifier. The resource user type identifier is used to uniquely identify a resource user type in the system. (1..65535) · Unsigned32
This object indicates the resource user type identifier. This uniquely identifies a resource user type in a sub-entity.
cermResUserTypeName
1.3.6.1.4.1.9.9.510.1.2.4.1.3
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 (1..64) · OCTET STRING · hint 255t
This is a textual string containing name of the resource user type.
cermResUserTypeResOwnerCount
1.3.6.1.4.1.9.9.510.1.2.4.1.4
Unsigned32
This object indicates the number of resource owners in the resource user type.
cermResUserTypeResUserCount
1.3.6.1.4.1.9.9.510.1.2.4.1.5
Unsigned32
This object indicates the number of resource users instantiated from the resource user type. This object value will be equal to the number of resource user entries present in the cermResUserTable for the resource user type.
cermResUserTypeResGroupCount
1.3.6.1.4.1.9.9.510.1.2.4.1.6
Unsigned32
This object indicates the number of resource groups in the resource user type. This object value will be equal to the number of resource group entries present in the cermResGroupTable for the resource user type.
PhysicalIndexAn arbitrary value that uniquely identifies the physical entity. The value should be a small positive integer. Index values for different physical entities are not necessarily contiguous. (1..2147483647) · Integer32 · hint d
The index for this entry.
cermResUserId
1.3.6.1.4.1.9.9.510.1.2.5.1.1
CermUserIdThis indicates the resource user identifier. The resource user identifier represents a resource user instantiated from a resource user type. This identifier is used to uniquely identify a resource user in a resource user type. (1..4294967295) · Unsigned32
This object indicates the resource user identifier. This uniquely identifies a resource user in a resource user type.
cermResUserName
1.3.6.1.4.1.9.9.510.1.2.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 (1..64) · OCTET STRING · hint 255t
This object is a textual string containing name of the resource user. For example: 'IP Input' process.
cermResUserPriority
1.3.6.1.4.1.9.9.510.1.2.5.1.3
Unsigned32
This object indicates priority of the resource user. High value for this object indicates that corresponding resource user has *low* priority and vice versa. The global ERM notification will be sent to the resource user in the order based on its priority. Lowest priority resource user (i.e. resource user which has highest value for this object) will get the global 'up' notification first and 'down' notification last.
cermResUserResGroupId
1.3.6.1.4.1.9.9.510.1.2.5.1.4
CermGroupIdThis indicates the resource group identifier. This identifier is used to uniquely identify a resource group in a resource user type. (1..4294967295) · Unsigned32
This object indicates the resource group in which the resource user is present. If the resource user does not belong to any resource group, then the value of this object will be zero. Otherwise, this object will contain value of the object cermResGroupId corresponding to the resource group entry in the cermResGroupTable.
PhysicalIndexAn arbitrary value that uniquely identifies the physical entity. The value should be a small positive integer. Index values for different physical entities are not necessarily contiguous. (1..2147483647) · Integer32 · hint d
The index for this entry.
cermResGroupId
1.3.6.1.4.1.9.9.510.1.2.6.1.1
CermGroupIdThis indicates the resource group identifier. This identifier is used to uniquely identify a resource group in a resource user type. (1..4294967295) · Unsigned32
This object indicates the resource group identifier. This uniquely identifies a resource group in a resource user type.
cermResGroupName
1.3.6.1.4.1.9.9.510.1.2.6.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 (1..64) · OCTET STRING · hint 255t
This object is a textual string containing name of the resource group. If the resource group has been configured by the user, this object will contain value of the cermConfigResGroupName corresponding to the configured resource group in the cermConfigResGroupTable.
cermResGroupUserInstanceCount
1.3.6.1.4.1.9.9.510.1.2.6.1.3
Unsigned32
This object indicates the number of resource user instances present in the resource group.
PhysicalIndexAn arbitrary value that uniquely identifies the physical entity. The value should be a small positive integer. Index values for different physical entities are not necessarily contiguous. (1..2147483647) · Integer32 · hint d
The index for this entry.
cermResGroupResUserId
1.3.6.1.4.1.9.9.510.1.2.7.1.1
CermUserIdThis indicates the resource user identifier. The resource user identifier represents a resource user instantiated from a resource user type. This identifier is used to uniquely identify a resource user in a resource user type. (1..4294967295) · Unsigned32
This object identifies one of the resource users in a particular resource group. This object will contain value of the cermResUserId, in the cermResUserTable, corresponding to one of resource users in the resource group.
PhysicalIndexAn arbitrary value that uniquely identifies the physical entity. The value should be a small positive integer. Index values for different physical entities are not necessarily contiguous. (1..2147483647) · Integer32 · hint d
The index for this entry.
cermResOwnerResUserTypeId
1.3.6.1.4.1.9.9.510.1.2.8.1.1
CermUserTypeIdThis indicates the resource user type identifier. The resource user type identifier is used to uniquely identify a resource user type in the system. (1..65535) · Unsigned32
This object identifies the resource user type corresponding to the resource user/group which is part of the resource owner <-> resource user/group relationship. This object will contain value of the cermResUserTypeId in the cermResUserTypeTable, corresponding to the resource user type.
cermResOwnerResUserOrGroupId
1.3.6.1.4.1.9.9.510.1.2.8.1.2
CermUserIdThis indicates the resource user identifier. The resource user identifier represents a resource user instantiated from a resource user type. This identifier is used to uniquely identify a resource user in a resource user type. (1..4294967295) · Unsigned32
This object identifies the resource group/user which is part of the resource owner sub-type <-> resource group/user relationship. If the cermResUserOrGroupFlag is 'user', this object will contain value of the cermResUserId for one of the resource user entry in the cermResUserTable. If the cermResUserOrGroupFlag is 'group', this object will contain value of the cermResGroupId for one of the resource group entry in the cermResGroupTable.
cermResUserOrGroupFlag
1.3.6.1.4.1.9.9.510.1.2.8.1.3
CermUserOrGroup1 = group2 = userThis indicates one of the following: 1. group - resource group.
2. user - resource user. · Integer32
This is a flag indicating whether corresponding entry belongs to a resource group or resource user. If this object value is 'user', this entry belongs to a resource owner sub-type <-> resource user relationship. If this object value is 'group', this entry belongs to a resource owner sub-type <-> resource group relationship.
cermResUserOrGroupUsagePct
1.3.6.1.4.1.9.9.510.1.2.8.1.4
CermResUsagePctThis indicates the resource utilization value, in percentage. That means the percentage of resources utilized from a resource owner. · Unsigned32 · percentage
This object indicates percentage of resources utilized from the resource owner sub-type by the resource user (if the cermResUserOrGroupFlag is 'user') or resource group (if the cermResUserOrGroupFlag is 'group').
For example, if 1 MB out of 50 MB 'processor' memory has been utilized by the resource user 'RU-1', then value of this object would be 2 in the entry corresponding to the 'processor' memory <-> 'RU-1' relationship.
cermResUserOrGroupUsage
1.3.6.1.4.1.9.9.510.1.2.8.1.5
Unsigned32
This object indicates the amount of resources utilized from the resource owner sub-type by the resource user (if the cermResUserOrGroupFlag is 'user') or resource group (if the cermResUserOrGroupFlag is 'group'), in the unit of measurement indicated by the object cermResOwnerMeasurementUnit for the corresponding resource owner.
For example, if 1 MB (i.e. 1048576 bytes) of 'processor' memory has been utilized by the resource user 'RU-1', then value of this object would be 1048576 in the entry corresponding to the 'processor' memory <-> 'RU-1' relationship.
cermResUserOrGroupMaxUsage
1.3.6.1.4.1.9.9.510.1.2.8.1.6
Unsigned32
This object indicates the maximum amount of resource utilized from the resource owner sub-type by the resource user (if the cermResUserOrGroupFlag is 'user') or resource group (if the cermResUserOrGroupFlag is 'group') since the system has been up, in the unit of measurement specified by the object cermResOwnerMeasurementUnit for the corresponding resource owner. If this object is not implemented by the resource owner sub-type, then value of this object would be zero.
cermResUserOrGroupNotifSeverity
1.3.6.1.4.1.9.9.510.1.2.8.1.7
CermNotificationSeverity1 = none2 = minor3 = major4 = criticalThis indicates the severity of ERM notification that reflects the severity of resource utilization related problem. The following notification severites are defined in the ERM: 1. None This indicates that the system is running without violating any applied resource utilization threshold values. 2. Minor This indicates that a 'minor' severity level threshold has been violated in the system. 3. Major This indicates that a 'major' severity level threshold has been violated in the system. 4. Critical This indicates that a 'critical' severity level threshold has been violated in the system. · Integer32
This object indicates the user local current notification severity for the resource owner sub-type and resource user/group relationship.
For example, lets assume that the resource user 'RU-1' has utilized the 'processor' memory more than the applied *minor* severity user local rising threshold value (and its utilization is still above the corresponding falling threshold value), then current user local notification severity for the 'processor' memory <-> 'RU-1' relationship would be 'minor'.
cermResUserOrGroupGlobNotifSeverity
1.3.6.1.4.1.9.9.510.1.2.8.1.8
CermNotificationSeverity1 = none2 = minor3 = major4 = criticalThis indicates the severity of ERM notification that reflects the severity of resource utilization related problem. The following notification severites are defined in the ERM: 1. None This indicates that the system is running without violating any applied resource utilization threshold values. 2. Minor This indicates that a 'minor' severity level threshold has been violated in the system. 3. Major This indicates that a 'major' severity level threshold has been violated in the system. 4. Critical This indicates that a 'critical' severity level threshold has been violated in the system. · Integer32
This object indicates per user global current notification severity for the resource owner sub-type and resource user/group relationship.
For example, lets assume that total utilization of the 'processor' memory resource owner has exceeded the applied per user global rising threshold value for *minor* severity (and its utilization is still above the corresponding falling threshold value), then current per user global notification severity for the 'processor' memory and 'RU-1' relationship would be 'minor'.
This table contains information about each applied threshold configuration for each resource owner sub-type <-> resource user/group relationship. This table will have an entry for each threshold configuration for each resource owner sub-type <-> resource user/group relationship for which a rising threshold value is set. If rising threshold value is not set for a resource owner sub-type <-> resource user/group relationship, then an entry will not be present in this table for the relationship.
PhysicalIndexAn arbitrary value that uniquely identifies the physical entity. The value should be a small positive integer. Index values for different physical entities are not necessarily contiguous. (1..2147483647) · Integer32 · hint d
The index for this entry.
cermResUserOrGroupThreshIsUserGlob
1.3.6.1.4.1.9.9.510.1.2.9.1.1
TruthValue1 = true2 = falseRepresents a boolean value. · Integer32
A flag which indicates whether the threshold configuration is about user local thresholding or per user global thresholding. The value of this object would be 'true' for the per user global threshold configuration.
cermResUserOrGroupThreshSeverity
1.3.6.1.4.1.9.9.510.1.2.9.1.2
CermThresholdSeverity1 = minor2 = major3 = criticalThis indicates the severity of thresholds. The threshold severity is used to reflect the severity of resource utilization related problem in the system. There are three thresholding severity levels defined in the ERM:
1. Minor Violation of 'minor' thresholding indicates a minor problem (related to resource utilization) in the system. 2. Major Violation of 'major' thresholding indicates a major problem (related to resource utilization) in the system. 3. Critical Violation of 'critical' thresholding indicates a critical problem (related to resource utilization) in the system. · Integer32
This object indicates the threshold severity for the threshold configuration entry. The value of this object can be 'minor', 'major' and 'critical'.
cermResUserOrGroupThreshFlag
1.3.6.1.4.1.9.9.510.1.2.9.1.3
CermUserOrGroup1 = group2 = userThis indicates one of the following: 1. group - resource group.
2. user - resource user. · Integer32
This is a flag indicating whether corresponding entry belongs to a resource group or resource user. If this object value is 'user', this entry belongs to a resource owner sub-type <-> resource user relationship. If this object value is 'group', this entry belongs to a resource owner sub-type <-> resource group relationship.
cermResUserOrGroupRisingThresh
1.3.6.1.4.1.9.9.510.1.2.9.1.4
CermThresholdThis indicates the threshold value for resource utilization, in percentage. (1..4294967295) · Unsigned32
This object indicates the rising threshold value set for the thereshold configuration for the resource owner sub-type <-> resource user/group relationship. If the rising threshold value is not set for the resource owner sub-type <-> resource user/group relationship, then this table will not have any entry for the relationship.
cermResUserOrGroupRisingInterval
1.3.6.1.4.1.9.9.510.1.2.9.1.5
CermDampenIntervalThis indicates the dampening or observation interval time during which the variations in the resource utilization are not notified to any relevant resource user(s) or resource monitor(s). The interval is set to avoid unnecessary and unwanted notifications. (0..2592000) · Integer32 · seconds
This object indicates dampening interval time set for the rising threshold for the threshold configuration entry in this table. If the rising threshold value is configured but the rising interval time is not configured for the resource owner sub-type <-> resource user/group relationship, then default value would be taken. The default value is specific to the resource owner sub-type.
cermResUserOrGroupFallingThresh
1.3.6.1.4.1.9.9.510.1.2.9.1.6
CermThresholdThis indicates the threshold value for resource utilization, in percentage. (1..4294967295) · Unsigned32
This object indicates the falling threshold value set for the threshold configuration for the resource owner sub-type <-> resource user/group relationship. If the rising threshold value is configured but the falling threshold value is not configured for the resource owner sub-type <-> resource user/group relationship, then default value would be taken. The default value is specific to the resource owner sub-type.
cermResUserOrGroupFallingInterval
1.3.6.1.4.1.9.9.510.1.2.9.1.7
CermDampenIntervalThis indicates the dampening or observation interval time during which the variations in the resource utilization are not notified to any relevant resource user(s) or resource monitor(s). The interval is set to avoid unnecessary and unwanted notifications. (0..2592000) · Integer32 · seconds
This object indicates the dampening interval time set for the falling threshold for the threshold configuration entry in this table. If the rising threshold value is configured but the falling interval value is not configured for the resource owner sub-type <-> resource user/group relationship, then default value would be taken. The default value is specific to the resource owner sub-type.
This table contains an entry for each resource user type and resource owner relationship in the system. This table would be useful in getting list of resource owners in a particular resource user type and vice versa.
PhysicalIndexAn arbitrary value that uniquely identifies the physical entity. The value should be a small positive integer. Index values for different physical entities are not necessarily contiguous. (1..2147483647) · Integer32 · hint d
The index for this entry.
cermResUserTypeResOwnerId
1.3.6.1.4.1.9.9.510.1.2.10.1.1
CermOwnerIdThis indicates the resource owner identifier. The resource owner identifier is used to uniquely identify a resource owner in the system. (1..4294967295) · Unsigned32
A unique identifier representing one of the resource owner in the resource user type. This object contains value of the cermResOwnerId in one of the entries in the cermResOwnerTable.
PhysicalIndexAn arbitrary value that uniquely identifies the physical entity. The value should be a small positive integer. Index values for different physical entities are not necessarily contiguous. (1..2147483647) · Integer32 · hint d
The index for this entry.
cermResMonitorSubEntityId
1.3.6.1.4.1.9.9.510.1.2.11.1.1
CermSubEntityIdThis indicates the sub-entity identifier. If a physical entity has multiple logical processing entities and these entities have its own set of resources, we use sub-entities to uniquely identiy these logical processing entities.
For example, if each process in the system has separate memory address space (i.e. memory address space is not shared between processes), then each process can be considered as a separate logical processing entity.
In such cases, the sub-entity identifier can be used to distinguish an ERM entity in one logical processing entity from others. Each sub-entity (i.e. logical processing entity) might have its own set of resources owners, resource user types, resource users, resource groups and resource monitors.
If the system doesn't have more than one logical processing entities, then sub-entity identifier may have zero value. · Unsigned32
This object indicates the sub-entity (i.e. logical processing entity in a physical entity) in which the resource monitor is present.
cermResMonitorId
1.3.6.1.4.1.9.9.510.1.2.11.1.2
CermMonitorIdThis indicates the resource monitor identifier. The resource monitor identifier is used to uniquely identify a resource monitor in the system. (1..4294967295) · Unsigned32
This object indicates the resource monitor identifier.
cermResMonitorName
1.3.6.1.4.1.9.9.510.1.2.11.1.3
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 (1..64) · OCTET STRING · hint 255t
This is a textual string containing name of the resource monitor.
This table contains the following information: 1) resource owners being watched by each resource monitor. 2) resource users being watched by each resource monitor. 3) resource owner and resource user relationships being watched by each resource monitor.
PhysicalIndexAn arbitrary value that uniquely identifies the physical entity. The value should be a small positive integer. Index values for different physical entities are not necessarily contiguous. (1..2147483647) · Integer32 · hint d
The index for this entry.
cermResMonitorResOwnerId
1.3.6.1.4.1.9.9.510.1.2.12.1.1
CermOwnerIdOrZeroThis textual convention is an extension of the CermOwnerId convention. The latter defines a greater than zero value used to identify a resource owner in the managed system. This extension permits the additional value of zero. The value zero is object specific and must therefore be defined as part of the description of any object which uses this syntax. · Unsigned32
This object identifies the resource owner which is being monitored by the resource monitor. The value of this object would be 0 in the entry where only the resource user (not the resource owner and resource user relationship) being watched by the resource monitor.
In case of non-zero value, this object indicates the cermResOwnerId object value for one of the resource owner entry in the cermResOwnerTable.
cermResMonitorResUserTypeId
1.3.6.1.4.1.9.9.510.1.2.12.1.2
CermUserTypeIdOrZeroThis textual convention is an extension of the CermUserTypeId convention. The latter defines a greater than zero value used to identify a resource user type in the managed system. This extension permits the additional value of zero. The value zero is object specific and must therefore be defined as part of the description of any object which uses this syntax. (0..65535) · Unsigned32
This object identifies the resource user type of the resource user which is being monitored by the resource monitor. The value of this object would be 0 in the entry where only the resource owner (not the resource owner and resource user relationship) being watched by the resource monitor.
In case of non-zero value, this object indicates the cermResUserTypeId object value for one of the resource user type entry in the cermResUserTypeTable.
cermResMonitorResUserId
1.3.6.1.4.1.9.9.510.1.2.12.1.3
CermUserIdOrZeroThis textual convention is an extension of the CermUserId convention. The latter defines a greater than zero value used to identify a resource user in the managed system. This extension permits the additional value of zero. The value zero is object specific and must therefore be defined as part of the description of any object which uses this syntax. · Unsigned32
This object identifies the resource user which is being monitored by the resource monitor. The value of this object would be 0 in the entry where only the resource owner (not the resource owner and resource user relationship) being watched by the resource monitor.
In case of non-zero value, this object indicates the cermResUserId object value for one of the resource user entry in the cermResUserTable.
cermResMonitorResPolicyName
1.3.6.1.4.1.9.9.510.1.2.12.1.4
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
This object indicates the policy name corresponding to the resource owner <-> resource user relationship being watched by the resource monitor. If there is no corresponding applied resource policy for the resource owner and resource user in the entry, then this object will contain zero-length string.
This object indicates the cermPolicyName object value in one of the resource policy entry in the cermConfigPolicyTable.
This table contains an entry for each resource policy being watched by each resource monitor in the system. This table will be useful to get the name of all the resource policies being watched by a particular resource monitor. If a resource monitor doesn't watch any resource policy, then this table will not have any entry for the resource monitor.
PhysicalIndexAn arbitrary value that uniquely identifies the physical entity. The value should be a small positive integer. Index values for different physical entities are not necessarily contiguous. (1..2147483647) · Integer32 · hint d
The index for this entry.
cermResMonitorPolicyName
1.3.6.1.4.1.9.9.510.1.2.13.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 (1..64) · OCTET STRING · hint 255t
This is a textual string indicating name of a resource policy being watched by the resource monitor. This object will contain the cermPolicyName object value in one of the resource policy entry in the cermConfigPolicyTable.
cermConfigPolicyTable
1.3.6.1.4.1.9.9.510.1.3.1
Index: cermPolicyName
This table contains information about each resource policy configured in the system. Resource Policy will contain threshold configurations for a set of resource owners. Each threshold configuration must specify the threshold severity and the rising threshold value which are mandatory. The rising interval time, falling threshold value and falling interval time are optional for the threshold configuration. Only one local resource policy can be applied for a resource user or resource group, at any point in time. The global resource policy cannot be applied for a resource user or resource group.
Whenever a resource policy is applied to a resource user instance, each threshold configuration in the resource policy will be applied to all relevant resource owner and resource user relationships.
cermPolicyName
1.3.6.1.4.1.9.9.510.1.3.1.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 (1..64) · OCTET STRING · hint 255t
This is textual string containing name of the resource policy. The resource policy name should be unique for each resource policy configured in the system.
cermPolicyIsGlobal
1.3.6.1.4.1.9.9.510.1.3.1.1.2
TruthValue1 = true2 = falseRepresents a boolean value. · Integer32
This is a flag indicating whether the resource policy is a global resource policy or not. For global resource policies, this object value would be 'true'. This object value cannot be changed after creating the resource policy.
cermPolicyUserTypeName
1.3.6.1.4.1.9.9.510.1.3.1.1.3
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
This is a textual string indicating the resource user type
name for the resource policy. For a global resource policy, this object will have zero-length string. For a local resource policy, this object will contain name of the resource user type for the resource policy. The resource user type name for a resource policy, cannot be changed after creating the resource policy.
cermPolicyLoggingEnabled
1.3.6.1.4.1.9.9.510.1.3.1.1.4
TruthValue1 = true2 = falseRepresents a boolean value. · Integer32
This is a flag indicating whether syslog is enabled for the resource policy or not.
cermPolicySnmpNotifEnabled
1.3.6.1.4.1.9.9.510.1.3.1.1.5
TruthValue1 = true2 = falseRepresents a boolean value. · Integer32
This is a flag indicating whether SNMP notifications are enabled for the resource policy or not. If this object value is set to 'true', all notifications related to the resource policy will be sent to all remote hosts which are configured to get SNMP notifications from the managed device.
cermPolicyStorageType
1.3.6.1.4.1.9.9.510.1.3.1.1.6
StorageType1 = other2 = volatile3 = nonVolatile4 = permanent5 = readOnlyDescribes the memory realization of a conceptual row. A row which is volatile(2) is lost upon reboot. A row which is either nonVolatile(3), permanent(4) or readOnly(5), is backed up by stable storage. A row which is permanent(4) can be changed but not deleted. A row which is readOnly(5) cannot be changed nor deleted.
If the value of an object with this syntax is either permanent(4) or readOnly(5), it cannot be written. Conversely, if the value is either other(1), volatile(2) or nonVolatile(3), it cannot be modified to be permanent(4) or readOnly(5). (All illegal modifications result in a 'wrongValue' error.)
Every usage of this textual convention is required to specify the columnar objects which a permanent(4) row must at a minimum allow to be writable. · Integer32
This object indicates the storage type of this conceptual row. If it is set to 'nonVolatile', this entry can be saved into non-volatile memory.
cermPolicyRowStatus
1.3.6.1.4.1.9.9.510.1.3.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
This object indicates the status of the conceptual row in the cermConfigPolicyTable. To create a new entry (i.e. creating a new resource policy) in the cermConfigPolicyTable, this object has to be set to 'createAndGo' after setting all mandatory columnar objects for the corresponding entry. Setting the status to 'createAndGo' will fail if any of the columnar objects in the same row does not have acceptable value. If it succeeds, status of this row will be set to 'active'.
To delete an existing resource policy, this object has to be set to 'destroy'. Deletion may fail if the resource policy is being configured by any other user or the resource policy has been associated with any resource user instance.
This table contains information about each threshold configuration in each resource policy in the cermConfigPolicyTable. This table can be used to configure threshold details (i.e. threshold severity, rising threshold value, falling threshold value, rising interval time and falling interval time) for a resource policy in the cermConfigPolicyTable.
cermPolicyPhysicalIndex
1.3.6.1.4.1.9.9.510.1.3.2.1.1
PhysicalIndexAn arbitrary value that uniquely identifies the physical entity. The value should be a small positive integer. Index values for different physical entities are not necessarily contiguous. (1..2147483647) · Integer32 · hint d
This object uniquely identifies the physical entity to which the threshold configuration belongs. This objects indicates the entPhysicalIndex value (in the entPhysicalTable) for the corresponding physical entity.
cermPolicyResOwnerSubEntityId
1.3.6.1.4.1.9.9.510.1.3.2.1.2
CermSubEntityIdThis indicates the sub-entity identifier. If a physical entity has multiple logical processing entities and these entities have its own set of resources, we use sub-entities to uniquely identiy these logical processing entities.
For example, if each process in the system has separate memory address space (i.e. memory address space is not shared between processes), then each process can be considered as a separate logical processing entity.
In such cases, the sub-entity identifier can be used to distinguish an ERM entity in one logical processing entity from others. Each sub-entity (i.e. logical processing entity) might have its own set of resources owners, resource user types, resource users, resource groups and resource monitors.
If the system doesn't have more than one logical processing entities, then sub-entity identifier may have zero value. · Unsigned32
This object indicates the sub-entity (i.e. logical processing entity in a physical entity) in which the resource owner is present. This object indicates the cermResOwnerSubEntityId value (in the cermResOwnerTable) for the resource owner.
cermPolicyResOwnerId
1.3.6.1.4.1.9.9.510.1.3.2.1.3
CermOwnerIdThis indicates the resource owner identifier. The resource owner identifier is used to uniquely identify a resource owner in the system. (1..4294967295) · Unsigned32
This object identifies the resource owner for which the threshold is configured. This object indicates the cermResOwnerId value (in the cermResOwnerTable) for the corresponding resource owner.
cermPolicyResOwnerSubTypeId
1.3.6.1.4.1.9.9.510.1.3.2.1.4
Unsigned32
This object identifies the resource owner sub-type for which threshold is configured.
For example, 'processor' and 'io' are sub-types of the 'memory' resource owner. Each resource owner sub-type may have different threshold configuration. If the resource owner does not have any sub-type, then value of this object would be zero. This object indicates the 'cermResOwnerSubTypeId' value (in the cermResOwnerSubTypeTable) for the corresponding resource owner sub-type.
cermPolicyIsUserGlobal
1.3.6.1.4.1.9.9.510.1.3.2.1.5
TruthValue1 = true2 = falseRepresents a boolean value. · Integer32
This is a flag indicating whether the threshold configuration is for per user global thresholding or user local thresholding. For per user global threshold configuration, value of this object would be 'true'. For system global and user local threshold configuration, value of this object would be 'false'.
cermPolicyThresholdSeverity
1.3.6.1.4.1.9.9.510.1.3.2.1.6
CermThresholdSeverity1 = minor2 = major3 = criticalThis indicates the severity of thresholds. The threshold severity is used to reflect the severity of resource utilization related problem in the system. There are three thresholding severity levels defined in the ERM:
1. Minor Violation of 'minor' thresholding indicates a minor problem (related to resource utilization) in the system. 2. Major Violation of 'major' thresholding indicates a major problem (related to resource utilization) in the system. 3. Critical Violation of 'critical' thresholding indicates a critical problem (related to resource utilization) in the system. · Integer32
This object identifies the threshold severity set for the threshold configuration.
For a minor threshold configuration, value of this object would be 'minor'. For major threshold configuration, value of this object would be 'major'. For critical threshold configuration, value of this object would be 'critical'.
cermPolicyRisingThreshold
1.3.6.1.4.1.9.9.510.1.3.2.1.7
CermThresholdThis indicates the threshold value for resource utilization, in percentage. (1..4294967295) · Unsigned32
This object indicates the rising threshold value set for the threshold configuration entry.
Lets assume that system global threshold value (in percentage) for 'io' memory resource owner is set to 60% as minor rising threshold value, 70% as major rising threshold value and 90% as critical rising threshold value. When the total 'io' memory utilization exceeds the 60% threshold limit, a minor 'up' notification will be sent to relevant resource user(s). When the total 'io' memory utilization exceeds the 70% threshold limit, a major 'up' notification will be sent to relevant resource user(s). When it exceeds the 90% threshold limit, a critical 'up' notification will be sent to relevant resource user(s).
The rising threshold value is mandatory for any threshold configuration entry in the cermConfigPolicyResOwnerThreshTable.
cermPolicyRisingInterval
1.3.6.1.4.1.9.9.510.1.3.2.1.8
CermDampenIntervalThis indicates the dampening or observation interval time during which the variations in the resource utilization are not notified to any relevant resource user(s) or resource monitor(s). The interval is set to avoid unnecessary and unwanted notifications. (0..2592000) · Integer32 · seconds
This object indicates the dampening interval for the rising threshold, for the threshold configuration. That means, an interval during which variations in the rising and falling threshold values are not notified to any resource user(s).
If the dampening interval for the rising threshold is not configured, it will contain zero.
cermPolicyFallingThreshold
1.3.6.1.4.1.9.9.510.1.3.2.1.9
CermThresholdOrZeroThis textual convention is an extension of the CermThreshold convention. The latter defines a greater than zero value used to indicate a resource utilization threshold value in percentage. This extension permits the additional value of zero. The value zero is object specific and must therefore be defined as part of the description of any object which uses this syntax. · Unsigned32
This object indicates the falling threshold value set for the threshold configuration.
Lets assume that system global threshold value (in percentage) for 'io' memory resource owner is set to 10% as minor falling threshold value, 20% as major falling threshold value and 30% as critical falling threshold value. When the total 'io' memory utilization falls below 10%, a minor 'down' notification will be sent to relevant resource user(s). When the total 'io' memory utilization falls below 20%, a major 'down' notification will be sent to relevant resource user(s). When it falls below 30%, a critical 'down' notification will be sent to relevant resource user(s). The 'down' notification will be sent only if corresponding 'up' notification has already been sent to relevant resource user(s).
Zero value for this object indicates that the falling threshold value is not configured.
cermPolicyFallingInterval
1.3.6.1.4.1.9.9.510.1.3.2.1.10
CermDampenIntervalThis indicates the dampening or observation interval time during which the variations in the resource utilization are not notified to any relevant resource user(s) or resource monitor(s). The interval is set to avoid unnecessary and unwanted notifications. (0..2592000) · Integer32 · seconds
This object indicates the dampening interval for the falling threshold for the threshold configuration. That means, an interval during which variations in the rising and falling threshold values are not notified to the resource user(s).
If the dampening interval for the falling threshold is not configured, it will contain zero.
cermPolicyResOwnerThreshStorageType
1.3.6.1.4.1.9.9.510.1.3.2.1.11
StorageType1 = other2 = volatile3 = nonVolatile4 = permanent5 = readOnlyDescribes the memory realization of a conceptual row. A row which is volatile(2) is lost upon reboot. A row which is either nonVolatile(3), permanent(4) or readOnly(5), is backed up by stable storage. A row which is permanent(4) can be changed but not deleted. A row which is readOnly(5) cannot be changed nor deleted.
If the value of an object with this syntax is either permanent(4) or readOnly(5), it cannot be written. Conversely, if the value is either other(1), volatile(2) or nonVolatile(3), it cannot be modified to be permanent(4) or readOnly(5). (All illegal modifications result in a 'wrongValue' error.)
Every usage of this textual convention is required to specify the columnar objects which a permanent(4) row must at a minimum allow to be writable. · Integer32
This object indicates the storage type of this conceptual row. If it is set to 'nonVolatile', this entry can be saved into non-volatile memory.
cermPolicyResOwnerThreshRowStatus
1.3.6.1.4.1.9.9.510.1.3.2.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
This object indicates the status of the conceptual row in the cermConfigPolicyResOwnerThreshTable.
To create a new entry (i.e. adding a new threshold configuration for the resource policy) in the cermConfigPolicyResOwnerThreshTable, this object has to be set to 'createAndGo'. Setting the status to 'createAndGo' will fail if any columnar object in the same row does not have acceptable value. If it succeeds, status of this row will be set to 'active'.
To delete an existing threshold configuration in the resource policy, this object value to be set to 'destroy'.
cermConfigResGroupTable
1.3.6.1.4.1.9.9.510.1.3.3
Index: cermConfigResGroupName
This table contains information about each resource group created by the user in the system. This table is used to create or delete a resource group in the system.
cermConfigResGroupName
1.3.6.1.4.1.9.9.510.1.3.3.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 (1..48) · OCTET STRING · hint 255t
This is a textual string containing name of the resource group. The name is unique for each resource group available in the system.
cermConfigResGroupUserTypeName
1.3.6.1.4.1.9.9.510.1.3.3.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 (1..64) · OCTET STRING · hint 255t
This is a textual string containing name of the resource user type to which the resource group belongs. Only the resource user instance of the same resource user type, can be added into the resource group.
cermConfigResGroupStorageType
1.3.6.1.4.1.9.9.510.1.3.3.1.3
StorageType1 = other2 = volatile3 = nonVolatile4 = permanent5 = readOnlyDescribes the memory realization of a conceptual row. A row which is volatile(2) is lost upon reboot. A row which is either nonVolatile(3), permanent(4) or readOnly(5), is backed up by stable storage. A row which is permanent(4) can be changed but not deleted. A row which is readOnly(5) cannot be changed nor deleted.
If the value of an object with this syntax is either permanent(4) or readOnly(5), it cannot be written. Conversely, if the value is either other(1), volatile(2) or nonVolatile(3), it cannot be modified to be permanent(4) or readOnly(5). (All illegal modifications result in a 'wrongValue' error.)
Every usage of this textual convention is required to specify the columnar objects which a permanent(4) row must at a minimum allow to be writable. · Integer32
This object indicates the storage type of this conceptual row. If it is set to 'nonVolatile', this entry can be saved into non-volatile memory.
cermConfigResGroupRowStatus
1.3.6.1.4.1.9.9.510.1.3.3.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
This object indicates the status of the conceptual row in the cermConfigResGroupTable. To create a new row (i.e. creating a new resource group) in this table, this object has to be set to 'createAndGo'. If it succeeds, status of the row will be set to 'active'.
To delete an existing resource group, this object has to be set to 'destroy'.
This table has list of resource user instances added into each resource group.
cermConfigResGroupUserName
1.3.6.1.4.1.9.9.510.1.3.4.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 (1..64) · OCTET STRING · hint 255t
This is a textual string containing name of the resource user instance in the resource group. The resource user instance need not exist in the system when the resource group is configured.
cermConfigResGroupUserStorageType
1.3.6.1.4.1.9.9.510.1.3.4.1.2
StorageType1 = other2 = volatile3 = nonVolatile4 = permanent5 = readOnlyDescribes the memory realization of a conceptual row. A row which is volatile(2) is lost upon reboot. A row which is either nonVolatile(3), permanent(4) or readOnly(5), is backed up by stable storage. A row which is permanent(4) can be changed but not deleted. A row which is readOnly(5) cannot be changed nor deleted.
If the value of an object with this syntax is either permanent(4) or readOnly(5), it cannot be written. Conversely, if the value is either other(1), volatile(2) or nonVolatile(3), it cannot be modified to be permanent(4) or readOnly(5). (All illegal modifications result in a 'wrongValue' error.)
Every usage of this textual convention is required to specify the columnar objects which a permanent(4) row must at a minimum allow to be writable. · Integer32
This object indicates the storage type of this conceptual row. If it is set to 'nonVolatile', this entry can be saved into non-volatile memory.
cermConfigResGroupUserRowStatus
1.3.6.1.4.1.9.9.510.1.3.4.1.3
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
This object indicates the status of the conceptual row in the cermConfigResGroupUserTable. To create a new row (i.e. adding a new resource user instance) in the cermConfigResGroupUserTable, this object has to be set to 'createAndGo'. Setting the status to 'createAndGo' will fail if the given resource group is not yet created (i.e. not available in the cermConfigResGroupTable) or given resource user instance index is already exist. If it succeeds, status of the row will be set to 'active'.
To delete an resource user instance from the resource group, this object has to be set to 'destroy'.
This table has a list of resource users (or groups) for which local resource policies are applied in the system. The main purpose of this table is to apply a local resource policy for a resource user or resource group.
cermPolicyApplyUserOrGroupName
1.3.6.1.4.1.9.9.510.1.3.5.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 (1..64) · OCTET STRING · hint 255t
This is a textual string containing name of the resource user (or resource group) for which the resource policy is applied. A resource user (or group) cannot be associated with more than one resource policies. In other words, more than one resource polices cannot be applied to a resource user (or group) at any point in time.
cermPolicyApplyUserOrGroupFlag
1.3.6.1.4.1.9.9.510.1.3.5.1.2
CermUserOrGroup1 = group2 = userThis indicates one of the following: 1. group - resource group.
2. user - resource user. · Integer32
This is a flag indicating whether the cermPolicyApplyUserOrGroupName is a resource user name or resource group name. For resource group name, this object has to be set to 'group'.
cermPolicyApplyPolicyName
1.3.6.1.4.1.9.9.510.1.3.5.1.3
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 (1..64) · OCTET STRING · hint 255t
A textual string indicating name of the resource policy which is applied for the resource user (or resource group). This object indicates the cermPolicyName, in the cermConfigPolicyTable, applied to the resource user (or group) name.
cermPolicyApplyStorageType
1.3.6.1.4.1.9.9.510.1.3.5.1.4
StorageType1 = other2 = volatile3 = nonVolatile4 = permanent5 = readOnlyDescribes the memory realization of a conceptual row. A row which is volatile(2) is lost upon reboot. A row which is either nonVolatile(3), permanent(4) or readOnly(5), is backed up by stable storage. A row which is permanent(4) can be changed but not deleted. A row which is readOnly(5) cannot be changed nor deleted.
If the value of an object with this syntax is either permanent(4) or readOnly(5), it cannot be written. Conversely, if the value is either other(1), volatile(2) or nonVolatile(3), it cannot be modified to be permanent(4) or readOnly(5). (All illegal modifications result in a 'wrongValue' error.)
Every usage of this textual convention is required to specify the columnar objects which a permanent(4) row must at a minimum allow to be writable. · Integer32
This object indicates the storage type of this conceptual row. If it is set to 'nonVolatile', this entry can be saved into non-volatile memory.
cermPolicyApplyRowStatus
1.3.6.1.4.1.9.9.510.1.3.5.1.5
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
This object indicates the status of the row in the cermConfigPolicyApplyTable. To create a new entry (i.e. applying a resource policy to a resource group or resource user) in the cermConfigPolicyApplyTable, this object has to be set to 'createAndGo'. Setting the status to 'createAndGo' will fail if any columnar object in the same row does not have acceptable value (for example, the specified resource policy name does not exist in the cermConfigPolicyTable). If it succeeds, status of the row will be set to 'active'.
To delete a row in the table (i.e. unconfiguring a policy for a resource group/user), this object has to be set to 'destroy'.
Trap details
ciscoErmGlobalPolicyViolation
1.3.6.1.4.1.9.9.510.0.1
This notification event will be generated whenever system global resource policy is violated i.e. total resource utilization exceeds the applied global threshold limit for any resource owner sub-type. Also, this notificatioin will be generated when resource utilization of the affected resource owner sub-type falls below the corresponding falling threshold value.
The cermResOwnerName and cermResOwnerSubTypeName objects indicates the resource owner name and resource owner sub-type name for which an applied global threshold value got violated.
The cermNotifsThresholdSeverity object indicates the configured threshold severity which got violated. This object contains value of the cermResOwnerSubTypeThreshSeverity corresponding to the global threshold configuration which got violated.
The cermNotifsThresholdValue object indicates the configured threshold limit which got violated. This object contains value of either cermResOwnerSubTypeRisingThresh or cermResOwnerSubTypeFallingThresh based on the ERM notification direction indicated by the object cermNotifsDirection. If the cermNotifsDirection object value is 'up', the cermNotifsThresholdValue object would contain the value of the object cermResOwnerSubTypeRisingThresh. If the cermNotifsDirection object value is 'down', the cermNotifsThresholdValue object would contain the value of the object cermResOwnerSubTypeFallingThresh.
The cermNotifsDirection object indicates whether it is an 'up' notification or a 'down' notification.
The cermNotifsPolicyName object indicates name of the global resource policy which got violated. This object contains value of the cermPolicyName for the violated resource policy, in the cermConfigPolicyTable. If there is no associated resource policy name for the notification, then this object will contain zero-length string.
cermResOwnerName
1.3.6.1.4.1.9.9.510.1.2.1.1.3
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 (1..64) · OCTET STRING · hint 255t
This is a textual string containing name of the resource owner. For example: cpu, memory.
cermResOwnerSubTypeName
1.3.6.1.4.1.9.9.510.1.2.2.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
This is a textual string indicating name of the resource owner sub-type.
For example, 'processor' memory and 'io' memory are two sub-types in the 'memory' resource owner.
If the resource owner does not have any sub-types, this object value for the resource owner will be a zero-length string.
cermNotifsThresholdSeverity
1.3.6.1.4.1.9.9.510.1.4.1
CermThresholdSeverity1 = minor2 = major3 = criticalThis indicates the severity of thresholds. The threshold severity is used to reflect the severity of resource utilization related problem in the system. There are three thresholding severity levels defined in the ERM:
1. Minor Violation of 'minor' thresholding indicates a minor problem (related to resource utilization) in the system. 2. Major Violation of 'major' thresholding indicates a major problem (related to resource utilization) in the system. 3. Critical Violation of 'critical' thresholding indicates a critical problem (related to resource utilization) in the system. · Integer32
This object indicates the severity of the threshold configuration.
cermNotifsThresholdValue
1.3.6.1.4.1.9.9.510.1.4.3
CermThresholdThis indicates the threshold value for resource utilization, in percentage. (1..4294967295) · Unsigned32
This object indicates the rising (or falling) threshold value.
cermNotifsDirection
1.3.6.1.4.1.9.9.510.1.4.4
CermNotificationDirection1 = up2 = downThis indicates the direction/cause of the ERM notifications. There are two ERM notification directions defined in the ERM:
1. Up Notification The 'up' notification would be triggered by a resource owner when utilization of the corresponding resource exceeds an applied rising threshold value for the resource owner. The 'up' notification indicates that utilization for a resource owner has gone above an applied rising threshold.
2. Down Notification The 'down' notification would be triggered by a resource owner when resource utilization of the resource owner falls below (after exceeding an applied rising threshold value) any applied falling threshold value for the resource owner. The 'down' notification indicates that utilization for a resource owner has come down to normal state after exceeding an applied rising threshold. · Integer32
This object indicates the direction of the ERM notification.
cermNotifsPolicyName
1.3.6.1.4.1.9.9.510.1.4.5
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..255) · OCTET STRING · hint 255t
This object indicates the name of the resource policy.
ciscoErmLocalPolicyViolation
1.3.6.1.4.1.9.9.510.0.2
This notification event will be generated whenever a local resource policy is violated i.e. resource utilization exceeds the applied user local or per user global threshold limit for any resource owner sub-type <-> resource user relationship.
The cermResOwnerName and cermResOwnerSubTypeName objects indicates the resource owner name and resource owner sub-type name for which an applied per user global or user local threshold value got violated.
The cermResUserOrGroupThreshFlag object indicates whether the ERM notification is because of *resource user* threshold violation or *resource group* threshold violation.
The cermNotifsThresholdIsUserGlob object indicates whether the notification belongs to Per User Global threshold violation or User Local threshold violation. This object contains the value of cermResUserOrGroupThreshIsUserGlob corresponding to the threshold configuration which got violated.
The cermNotifsThresholdValue object indicates the configured threshold limit which got violated. This object contains value of either cermResUserOrGroupRisingThresh or cermResUserOrGroupFallingThresh based on the ERM notification direction indicated by the object cermNotifsDirection. For the 'up' notification, this object would contain value of the object cermResUserOrGroupRisingThresh. For the 'down' notification, it would contain value of the object cermResUserOrGroupFallingThresh.
The cermNotifsThresholdSeverity object indicates the configured threshold severity which got violated. This object contains value of the object cermResUserOrGroupThreshSeverity corresponding to the resource owner sub-type and resource user relationship.
The cermNotifsDirection object indicates whether it is an 'up' notification or a 'down' notification.
The cermNotifsPolicyName object indicates name of the local resource policy which got violated. If there is no associated policy name for the notification, then this object will contain zero-length string.
cermResOwnerName
1.3.6.1.4.1.9.9.510.1.2.1.1.3
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 (1..64) · OCTET STRING · hint 255t
This is a textual string containing name of the resource owner. For example: cpu, memory.
cermResOwnerSubTypeName
1.3.6.1.4.1.9.9.510.1.2.2.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
This is a textual string indicating name of the resource owner sub-type.
For example, 'processor' memory and 'io' memory are two sub-types in the 'memory' resource owner.
If the resource owner does not have any sub-types, this object value for the resource owner will be a zero-length string.
cermResUserTypeName
1.3.6.1.4.1.9.9.510.1.2.4.1.3
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 (1..64) · OCTET STRING · hint 255t
This is a textual string containing name of the resource user type.
cermResUserName
1.3.6.1.4.1.9.9.510.1.2.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 (1..64) · OCTET STRING · hint 255t
This object is a textual string containing name of the resource user. For example: 'IP Input' process.
cermResUserOrGroupThreshFlag
1.3.6.1.4.1.9.9.510.1.2.9.1.3
CermUserOrGroup1 = group2 = userThis indicates one of the following: 1. group - resource group.
2. user - resource user. · Integer32
This is a flag indicating whether corresponding entry belongs to a resource group or resource user. If this object value is 'user', this entry belongs to a resource owner sub-type <-> resource user relationship. If this object value is 'group', this entry belongs to a resource owner sub-type <-> resource group relationship.
cermNotifsThresholdIsUserGlob
1.3.6.1.4.1.9.9.510.1.4.2
TruthValue1 = true2 = falseRepresents a boolean value. · Integer32
This object indicates whether the threshold configuration is per user global thresholding or not.
cermNotifsThresholdSeverity
1.3.6.1.4.1.9.9.510.1.4.1
CermThresholdSeverity1 = minor2 = major3 = criticalThis indicates the severity of thresholds. The threshold severity is used to reflect the severity of resource utilization related problem in the system. There are three thresholding severity levels defined in the ERM:
1. Minor Violation of 'minor' thresholding indicates a minor problem (related to resource utilization) in the system. 2. Major Violation of 'major' thresholding indicates a major problem (related to resource utilization) in the system. 3. Critical Violation of 'critical' thresholding indicates a critical problem (related to resource utilization) in the system. · Integer32
This object indicates the severity of the threshold configuration.
cermNotifsThresholdValue
1.3.6.1.4.1.9.9.510.1.4.3
CermThresholdThis indicates the threshold value for resource utilization, in percentage. (1..4294967295) · Unsigned32
This object indicates the rising (or falling) threshold value.
cermNotifsDirection
1.3.6.1.4.1.9.9.510.1.4.4
CermNotificationDirection1 = up2 = downThis indicates the direction/cause of the ERM notifications. There are two ERM notification directions defined in the ERM:
1. Up Notification The 'up' notification would be triggered by a resource owner when utilization of the corresponding resource exceeds an applied rising threshold value for the resource owner. The 'up' notification indicates that utilization for a resource owner has gone above an applied rising threshold.
2. Down Notification The 'down' notification would be triggered by a resource owner when resource utilization of the resource owner falls below (after exceeding an applied rising threshold value) any applied falling threshold value for the resource owner. The 'down' notification indicates that utilization for a resource owner has come down to normal state after exceeding an applied rising threshold. · Integer32
This object indicates the direction of the ERM notification.
cermNotifsPolicyName
1.3.6.1.4.1.9.9.510.1.4.5
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..255) · OCTET STRING · hint 255t
This object indicates the name of the resource policy.