The MIB module for the management of Fibre Channel Zoning Servers, both for Basic Zoning Management and for Enhanced Zoning Management, as defined in the FC-GS-5 specification.
FC-GS-5 defines (in-band) management operations for manipulating the Zone Set Database, some for use in Basic mode (e.g., 'Add Zone Set (AZS)', etc.), and some for use in Enhanced mode (e.g., Create Zone Set (CZS)', etc.). When Enhanced Zoning Management is in use, FC-GS-5 requires that these in-band management operations be rejected unless they are issued within the context of a GS-5 server session. The use of a server session ensures serialized access to the Zoning Database since the Fabric lock for the Zone Server must be obtained as a part of establishing the server session to the Zone Server.
Thus, if and when this MIB is used for Enhanced Zoning Management, SNMP SetRequests that request the modification of zoning definitions must be serialized with respect to the GS-5 requests to modify the Zoning Database. This is achieved by requiring that an SNMP management application must first obtain the Fabric lock for the Zone Server before attempting to modify any zoning definitions. The companion T11-FC-FABRIC-LOCK-MIB module is defined as a means of obtaining the Fabric lock for the Zone Server (or any other server).
In Enhanced Zoning Management, a Zone Server keeps track of changes requested in the zoning definitions, but does not update its Zone Set Database unless there is (and until there is) a 'commit' operation. To model this behavior, this MIB module assumes that a Zone Server (in Enhanced mode) takes a snapshot of its Zone Set Database as and when the Fabric lock (for the Zone Server application) is obtained; this snapshot is used to create what is herein called the 'copy' database. It is this 'copy' database that is then updated by SNMP SetRequests (while the Fabric is locked). If and when a 'commit' operation is requested (while the Fabric is still locked), the 'copy' database is then used to overwrite the previously committed contents of the Zone Set Database, and the new Zone Set Database is distributed to all other switches in the Fabric. When the lock is released, any changes made that were not 'committed' are discarded.
When this MIB is used for Basic Zoning Management, the same set of MIB objects as used for Enhanced mode are used to make changes to the Database of a Zone Server on a particular switch, but the changes take immediate effect at that switch without an explicit commit. The distribution of those changes to Zone Servers on other switches in the Fabric is subsequently requested through the use of a separate set of MIB objects.
The management information specified in this MIB module includes the Zoning Database for each of one or more Fibre Channel Fabrics. A Zoning Database is a combination of the Fabric's Zone Set Database and its Active Zone Set. The Active Zone Set is the Zone Set currently enforced by the Fabric; a Zone Set Database is a database of the Zone Sets available to be activated within a Fabric. All the MIB objects representing a Zone Set Database are modifiable at any time (irrespective of the value of any RowStatus object), whereas all objects representing the Active Zone Set are always read-only (except to deactivate it and/or activate a different one).
Copyright (C) The IETF Trust (2007). This version
of this MIB module is part of RFC 4936; see the RFC
itself for full legal notices.
This object contains either a value of T11FabricIndex to identify the Fabric on which some occurrence has caused a notification to be generated, or it has the value 4096 to indicate all applicable Fabrics.
A table containing information about the Zone Servers on each Fabric in one or more switches, and providing the capability to perform operations on their Zone Server databases.
An arbitrary integer value that uniquely identifies this instance amongst all local Fibre Channel management instances.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts (but note, it is unrealistic to expect it to remain constant across all re-configurations of the local system, e.g., across the replacement of all non- volatile storage).
fcmSwitchIndex
Unsigned32 (1..4294967295)
An arbitrary integer that uniquely identifies a Fibre Channel switch amongst those managed by one Fibre Channel management instance.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts.
t11ZsServerFabricIndex
1.3.6.1.2.1.160.1.1.1.1.1
T11FabricIndexA Fabric Index that is used as a unique index value to identify a particular Fabric within one (or more) physical infrastructures.
In an environment that is conformant to FC-SW-3, where there is always exactly one Fabric in a single physical infrastructure, the value of this Fabric Index will always be 1.
However, the current standard, FC-SW-4, defines how multiple Fabrics, each with its own management instrumentation, could operate within one (or more) physical infrastructures. When such multiple Fabrics are in use, this index value is used to uniquely identify a particular Fabric within a physical infrastructure.
Note that the value of this textual convention has a range of (0..4095) so as to be consistent with FC-SW-4, which says that a 'VF_ID Bitmap' is 512 bytes long, with the high-order bit representing VF_ID zero, and the low-order bit representing 4095.Reference: Fibre Channel - Switch Fabric - 4 (FC-SW-4), ANSI INCITS 418-2006, section 6.1.27.2.4. (0..4095) · Unsigned32 · hint d
A unique index value that uniquely identifies a particular Fabric.
t11ZsServerCapabilityObject
1.3.6.1.2.1.160.1.1.1.1.2
BITS
This bitmap represents the capability of the switch on this Fabric:
'enhancedMode' - able to support enhanced Zoning mode of operation.
'zoneSetDb' - able to support maintaining of
a Zone Set Database.
'activateDirect' - able to support the Activate Direct command.
'hardZoning' - able to support Hard Zoning. Reference: Fibre Channel - Switch Fabric-4 (FC-SW-4), ANSI INCITS 418-2006, April 2006, section 6.1.23.4.4
t11ZsServerDatabaseStorageType
1.3.6.1.2.1.160.1.1.1.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 specifies the memory realization, on a particular switch, of the Zone Set database for a particular Fabric. Specifically, each row in the following tables:
t11ZsSetTable t11ZsZoneTable t11ZsSetZoneTable t11ZsAliasTable t11ZsZoneMemberTable t11ZsAttribBlockTable t11ZsAttribTable
has a StorageType as specified by the instance of this object that is INDEXed by the same values of fcmInstanceIndex, fcmSwitchIndex, and t11ZsServerFabricIndex.
The value of this object is also used to indicate the persistence across reboots of writable values in its row of the t11ZsServerTable, as well as the corresponding row in the t11ZsNotifyControlTable.
If an instance of this object has the value 'permanent(4)', the Zone Set database for the given Fabric on the given switch is not required to be writeable.
t11ZsServerDistribute
1.3.6.1.2.1.160.1.1.1.1.4
INTEGER1 = noop2 = zoneSetDb · Integer32
This object can be set only in Basic mode. When set to the value 'zoneSetDb', it requests that the Zone Set database of a particular switch for a particular Fabric be distributed to every other switch in that Fabric, e.g., by using Stage Fabric Configuration Update (SFC) and Update Fabric Configuration (UFC) requests.
Setting this object to 'noop' has no effect. When read, the value of this object is always 'noop'.
When the corresponding instance of t11ZsServerOperationMode has the value 'enhanced', or when the corresponding instance of t11ZsZoneSetResult has the value 'inProgress', it is inconsistent to try to set the value of this object. Reference: Fibre Channel - Switch Fabric-4 (FC-SW-4), ANSI INCITS 418-2006, April 2006, section 6.1.19.1.
t11ZsServerCommit
1.3.6.1.2.1.160.1.1.1.1.5
INTEGER1 = commitZoneChanges2 = noop · Integer32
This object is only used in Enhanced mode.
In Enhanced mode, it can only be modified when the Fabric lock for the Zone Server on the particular Fabric has been obtained for use by SNMP SetRequests, and even then, only by the SNMP entity identified by the value of corresponding instance of t11FLockInitiator.
Setting the object requests an action:
commitZoneChanges - requests that the changes made within this session to the Zone Set Database be committed.
noop - requests nothing.
When read, the value is always 'noop'. Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.10.2.
In Basic mode, this object indicates the status/result of the last distribution of the Zone Set database that was invoked via the corresponding instance of t11ZsZoneSetDistribute, e.g., the status/result of Stage Fabric Configuration Update (SFC) request(s) used to implement the setting of t11ZsZoneSetDistribute.
In Enhanced mode, this object indicates the status/result of the last commit of changes to the Zone Set database that was invoked via the corresponding instance of t11ZsServerCommit.
'none' - no distribution/commit invoked
via the corresponding instance of t11ZsZoneSetDistribute (Basic mode) or t11ZsServerCommit (Enhanced mode).
'inProgress' - distribution/commit is still in
progress.
'success' - distribution/commit completed
successfully. 'rejectFailure' - distribution/commit failed due to an SW_RJT.
'otherFailure' - distribution/commit failed for some
other reason.
When the value is 'rejectFailure', the corresponding instances of t11ZsServerReasonCode, t11ZsServerReasonCodeExp and t11ZsServerReasonVendorCode contain the reason codes. Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.10.2.3.
t11ZsServerReasonCode
1.3.6.1.2.1.160.1.1.1.1.7
T11NsGs4RejectReasonCode1 = none2 = invalidCmdCode3 = invalidVerLevel4 = logicalError5 = invalidIUSize6 = logicalBusy7 = protocolError8 = unableToPerformCmdReq9 = cmdNotSupported10 = serverNotAvailable11 = couldNotEstabSession12 = vendorErrorThe FC-GS-4 reject reason code for a request.
none(1) - no error. invalidCmdCode(2) - request contained an invalid command code. invalidVerLevel(3) - request contained an invalid version number. logicalError(4) - there was a logical error. invalidIUSize(5) - the CT_IU (Information Unit) size was invalid. logicalBusy(6) - the module is busy. protocolError(7) - there was a protocol error. unableToPerformCmdReq(8) - the command specified in the req could not be executed. The details of exactly what failed will be in the corresponding reason code explanation. cmdNotSupported(9) - the command is not supported. serverNotAvailable(10) - the identified server was not available. couldNotEstabSession(11) - a server session could not be established. vendorError(12) - a vendor-specific error.Reference: ANSI INCITS 387-2004, Fibre Channel - Generic Services-4 (FC-GS-4), section 4.4.3. · Integer32
When the corresponding instance of t11ZsZoneSetResult has the value 'rejectFailure', this object contains the rejection's reason code.
When the corresponding instance of t11ZsServerResult has a value other than 'rejectFailure', this object should contain the value 'none'. Reference: Fibre Channel - Switch Fabric-4 (FC-SW-4), ANSI INCITS 418-2006, April 2006, section 6.1.3 and tables 4, 5, and 6.
t11ZsServerReasonCodeExp
1.3.6.1.2.1.160.1.1.1.1.8
OCTET STRING SIZE (0 | 1)
When the corresponding instance of t11ZsZoneSetResult has the value 'rejectFailure', this object contains the rejection's reason code explanation.
When the corresponding instance of t11ZsServerResult has a value other than 'rejectFailure', this object should contain the zero-length string. Reference: Fibre Channel - Switch Fabric-4 (FC-SW-4), ANSI INCITS 418-2006, April 2006, section 6.1.3 and tables 4, 5, and 6.
t11ZsServerReasonVendorCode
1.3.6.1.2.1.160.1.1.1.1.9
OCTET STRING SIZE (0 | 1)
When the corresponding instance of t11ZsZoneSetResult has the value 'rejectFailure', this object contains the rejection's reason vendor-specific code.
When the corresponding instance of t11ZsServerResult has a value other than 'rejectFailure', this object should contain the zero-length string. Reference: Fibre Channel - Switch Fabric-4 (FC-SW-4), ANSI INCITS 418-2006, April 2006, section 6.1.3 and tables 4, 5, and 6.
t11ZsServerLastChange
1.3.6.1.2.1.160.1.1.1.1.10
TimeStampThe value of the sysUpTime object at which a specific occurrence happened. The specific occurrence must be
defined in the description of any object defined using this type.
If sysUpTime is reset to zero as a result of a re- initialization of the network management (sub)system, then the values of all TimeStamp objects are also reset. However, after approximately 497 days without a re- initialization, the sysUpTime object will reach 2^^32-1 and then increment around to zero; in this case, existing values of TimeStamp objects do not change. This can lead to ambiguities in the value of TimeStamp objects. · TimeTicks
The value of sysUpTime at the time of the last change (creation, modification, or deletion) to the Zone Set database for the Zone Server for a particular Fabric. If said Zone Set database has not changed since the last re-initialization of the local network management system, then this object will contain a zero value.
t11ZsServerHardZoning
1.3.6.1.2.1.160.1.1.1.1.11
TruthValue1 = true2 = falseRepresents a boolean value. · Integer32
This object indicates whether this switch, if and when it is in Basic mode, enforces Hard Zoning on this Fabric. Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.10.3.2.
t11ZsServerReadFromDatabase
1.3.6.1.2.1.160.1.1.1.1.12
INTEGER1 = committedDB2 = copyDB · Integer32
In Enhanced mode, this object specifies whether subsequent SNMP Responses (generated by the local SNMP agent) to operations that read the configuration of Zone Sets, Zones, Members, Aliases and Attributes will reflect the values stored in the current (committed) Zone Set database, or those stored in the 'copy' database.
In Basic mode, the value of this object is always 'committedDB' (since there is no 'copy' database in Basic mode). In SNMP agents that don't support write access to the Zone Set database, this object is always 'committedDB' (since the copy database, if it were to exist, would be identical).
t11ZsServerOperationMode
1.3.6.1.2.1.160.1.1.1.1.13
INTEGER1 = basic2 = enhanced · Integer32
The operational mode of the Zone Server.
Setting this object to 'enhanced' is a request that the mode of operation of the Zone Server be Enhanced mode, which is only possible if all devices in the Fibre Channel Fabric are capable of working in Enhanced mode. If not, the request will fail and the corresponding value of t11ZsServerChangeModeResult will so indicate.
Setting this object to 'basic' is a request that the mode of operation of the Zone Server be Basic mode. However, such a set may fail while operating in Enhanced mode, since FC-GS-5 makes no provision for changing (back) to Basic mode.
Note that setting this object does not cause or require that the Fabric lock for the Zone Server be obtained. However, when this object has the value 'enhanced', any SNMP SetRequests that attempt to modify the copy database cannot be successful if the Fabric lock has not been obtained or has since been released. Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, sections 6.4.10.1.1 and 6.4.10.1.2.
When this object has the value of 'success' or 'failure', the value indicates the outcome of the most recent request, invoked via t11ZsServerOperationMode, to change the mode of operation of the Zone Server. When such a request is in progress, this object has the value 'inProgress'. Prior to the first such request, the value of this object is 'none'.
t11ZsServerDefaultZoneSetting
1.3.6.1.2.1.160.1.1.1.1.15
INTEGER1 = permit2 = deny · Integer32
This object controls the Enhanced Zoning flag that governs the behavior of the Default Zone on this Fabric.
If this object is set to 'permit', then the members of the Default Zone on this Fabric can communicate with each other. If this object is set to 'deny', then the members of the Default Zone on this Fabric cannot communicate with each other. Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.10.1.1.
t11ZsServerMergeControlSetting
1.3.6.1.2.1.160.1.1.1.1.16
INTEGER1 = allow2 = restrict · Integer32
This object controls the Enhanced Zoning flag that indicates the Merge Control Setting for this Fabric:
'allow' - a switch may join the Fabric only if
its Zoning Database is able to merge with the Fabric's Zoning Database. 'restrict' - a switch may join the Fabric only if its Zoning Database is equal to the Fabric's Zoning Database. Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.10.1.1.
t11ZsServerDefZoneBroadcast
1.3.6.1.2.1.160.1.1.1.1.17
TruthValue1 = true2 = falseRepresents a boolean value. · Integer32
This object controls an Enhanced Zoning capability: it indicates whether Broadcast Zoning is enabled on the Default Zone on this Fabric. If this object is set to 'true', then it is enabled. If this object is set to 'false', then it is disabled.
If broadcast Zoning is enabled on a Default Zone, then broadcast frames generated by a member in that Default Zone will be restricted to members in that Default Zone. Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.7.2.2.
A table containing information on every Zone Set in the Zone Set database of the Zone Servers on each Fabric in one or more switches.
In Enhanced mode, changes to a database made via this table are always made to the 'copy' database, but values read from this table reflect the contents of either the 'copy' database or the current (committed) database as indicated by the corresponding value of t11ZsServerReadFromDatabase.
An arbitrary integer value that uniquely identifies this instance amongst all local Fibre Channel management instances.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts (but note, it is unrealistic to expect it to remain constant across all re-configurations of the local system, e.g., across the replacement of all non- volatile storage).
fcmSwitchIndex
Unsigned32 (1..4294967295)
An arbitrary integer that uniquely identifies a Fibre Channel switch amongst those managed by one Fibre Channel management instance.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts.
t11ZsSetIndex
1.3.6.1.2.1.160.1.1.2.1.1
Unsigned32 (1..4294967295)
The index of a Zone Set. This object uniquely identifies a Zone Set in the Zone Set database for a particular Fabric on a particular switch.
t11ZsSetName
1.3.6.1.2.1.160.1.1.2.1.2
T11ZoningNameThis datatype is a refinement of an SnmpAdminString, and is used to represent a name stored in a Fibre Channel Zoning Data Structure.
The value begins with an ASCII letter (upper or lower case) followed by zero or more characters from the set: lower case letters, upper case letters, numbers, and the symbols ($-^_).
The value does not include fill bytes.Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.8.1. SIZE (1..64) · OCTET STRING
The name of this Zone Set. The t11ZsSetName should be unique within a Fabric.
The Zone Set can be renamed at any time (i.e., even when the row in an active state) by setting this object to a new value.
t11ZsSetRowStatus
1.3.6.1.2.1.160.1.1.2.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
The status of this conceptual row.
This object cannot be set to 'active' unless the corresponding value of t11ZsSetName is unique within the Fabric's Zone Server database on this switch.
This table gives information on all the Zones in the Zone Set database of the Zone Servers on each Fabric in one or more switches.
In Enhanced mode, changes to a database made via this table are always made to the 'copy' database, but values read from this table reflect the contents of either the 'copy' database or the current (committed) database as indicated by the corresponding value of t11ZsServerReadFromDatabase.
An arbitrary integer value that uniquely identifies this instance amongst all local Fibre Channel management instances.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts (but note, it is unrealistic to expect it to remain constant across all re-configurations of the local system, e.g., across the replacement of all non- volatile storage).
fcmSwitchIndex
Unsigned32 (1..4294967295)
An arbitrary integer that uniquely identifies a Fibre Channel switch amongst those managed by one Fibre Channel management instance.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts.
t11ZsZoneIndex
1.3.6.1.2.1.160.1.1.3.1.1
Unsigned32 (1..4294967295)
An index value that uniquely identifies this Zone within a particular Fabric's Zone Set database on a particular switch.
t11ZsZoneName
1.3.6.1.2.1.160.1.1.3.1.2
T11ZoningNameThis datatype is a refinement of an SnmpAdminString, and is used to represent a name stored in a Fibre Channel Zoning Data Structure.
The value begins with an ASCII letter (upper or lower case) followed by zero or more characters from the set: lower case letters, upper case letters, numbers, and the symbols ($-^_).
The value does not include fill bytes.Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.8.1. SIZE (1..64) · OCTET STRING
The name of this Zone. The t11ZsZoneName should be unique within a Fabric.
The Zone can be renamed by setting this object to a new value.
t11ZsZoneAttribBlock
1.3.6.1.2.1.160.1.1.3.1.3
Unsigned32
This object specifies the index value of the Zone Attribute Block that contains the Attributes of this Zone.
In Enhanced mode, a value of zero indicates this Zone has no Zone Attributes. In Basic mode, this object always has the value of zero.
t11ZsZoneRowStatus
1.3.6.1.2.1.160.1.1.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
The status of this conceptual row.
This object cannot be set to 'active' unless the corresponding value of t11ZsZoneName is unique within the Fabric's Zone Server database on this switch.
An arbitrary integer value that uniquely identifies this instance amongst all local Fibre Channel management instances.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts (but note, it is unrealistic to expect it to remain constant across all re-configurations of the local system, e.g., across the replacement of all non- volatile storage).
fcmSwitchIndex
Unsigned32 (1..4294967295)
An arbitrary integer that uniquely identifies a Fibre Channel switch amongst those managed by one Fibre Channel management instance.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts.
t11ZsSetZoneRowStatus
1.3.6.1.2.1.160.1.1.4.1.1
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 table contains information about the Zone Aliases in the Zone Set database of the Zone Servers on each Fabric in one or more switches.
In Enhanced mode, changes to a database made via this table are always made to the 'copy' database, but values read from this table reflect the contents of either the 'copy' database or the current (committed) database as indicated by the corresponding value of t11ZsServerReadFromDatabase.
An arbitrary integer value that uniquely identifies this instance amongst all local Fibre Channel management instances.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts (but note, it is unrealistic to expect it to remain constant across all re-configurations of the local system, e.g., across the replacement of all non- volatile storage).
fcmSwitchIndex
Unsigned32 (1..4294967295)
An arbitrary integer that uniquely identifies a Fibre Channel switch amongst those managed by one Fibre Channel management instance.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts.
t11ZsAliasIndex
1.3.6.1.2.1.160.1.1.5.1.1
Unsigned32 (1..4294967295)
An index value which uniquely identifies this Zone Alias within the Zone Set database of a particular Fabric on a particular switch.
t11ZsAliasName
1.3.6.1.2.1.160.1.1.5.1.2
T11ZoningNameThis datatype is a refinement of an SnmpAdminString, and is used to represent a name stored in a Fibre Channel Zoning Data Structure.
The value begins with an ASCII letter (upper or lower case) followed by zero or more characters from the set: lower case letters, upper case letters, numbers, and the symbols ($-^_).
The value does not include fill bytes.Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.8.1. SIZE (1..64) · OCTET STRING
The name of this Zone Alias. The name of the Zone Alias should be unique within a Fabric.
The Zone Alias can be renamed by setting this object to a new value if and when it is not in a Zone, i.e., if and only if the current name is not the value of any t11ZsZoneMemberID in the same Zone Set database.
t11ZsAliasRowStatus
1.3.6.1.2.1.160.1.1.5.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
The status of this conceptual row.
This object cannot be set to 'active' unless the corresponding value of t11ZsAliasName is unique within the Fabric's Zone Server database on this switch.
This table contains all members of a Zone/Zone Alias and information about those members in the Zone Set database of the Zone Servers on each Fabric in one or more switches.
In Enhanced mode, changes to a database made via this table are always made to the 'copy' database, but values read from this table reflect the contents of either the 'copy' database or the current (committed) database as indicated by the corresponding value of t11ZsServerReadFromDatabase.
An arbitrary integer value that uniquely identifies this instance amongst all local Fibre Channel management instances.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts (but note, it is unrealistic to expect it to remain constant across all re-configurations of the local system, e.g., across the replacement of all non- volatile storage).
fcmSwitchIndex
Unsigned32 (1..4294967295)
An arbitrary integer that uniquely identifies a Fibre Channel switch amongst those managed by one Fibre Channel management instance.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts.
t11ZsZoneMemberParentType
1.3.6.1.2.1.160.1.1.6.1.1
INTEGER1 = zone2 = alias · Integer32
This object determines whether this member belongs to a Zone or Zone Alias.
t11ZsZoneMemberParentIndex
1.3.6.1.2.1.160.1.1.6.1.2
Unsigned32 (1..4294967295)
This object contains the index value of the Zone or Zone Alias to which this member belongs.
If the value of the corresponding instance of t11ZsZoneMemberParentType is 'zone', then this object will contain the value of the t11ZsZoneIndex object of the Zone to which this member belongs.
If the value of the corresponding instance of t11ZsZoneMemberParentType is 'alias', then this object will contain the value of the t11ZsAliasIndex object of the Zone Alias to which this member belongs.
t11ZsZoneMemberIndex
1.3.6.1.2.1.160.1.1.6.1.3
Unsigned32 (1..4294967295)
An index value that uniquely identifies this Zone Member amongst all Zone Members in the Zone Set database of a particular Fabric on a particular switch.
t11ZsZoneMemberFormat
1.3.6.1.2.1.160.1.1.6.1.4
T11ZsZoneMemberTypeRepresents the addressing mechanism by which a member is identified:
01 - N_Port_Name 02 - Domain_ID and physical port 03 - N_Port_ID 04 - Node_Name 05 - Alias Name 06 - F_Port_Name E0-FF (hex) - Vendor Specific.Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.8.3.6. (0..255) · Unsigned32 · hint x
This object identifies the format of the Zone/Zone Alias member's identifier contained in t11ZsZoneMemberID.
This object cannot be modified while the corresponding value of t11ZsZoneMemberRowStatus object is 'active'.
t11ZsZoneMemberID
1.3.6.1.2.1.160.1.1.6.1.5
OCTET STRING SIZE (1..255)
This object contains the Member Identifier of the Zone or Alias. The interpretation of this object depends on the value of the corresponding instance of t11ZsZoneMemberFormat:
- if t11ZsZoneMemberFormat is 'N_Port_Name', then this object contains an N_Port_Name.
- if t11ZsZoneMemberFormat is 'Domain_ID and physical port', then this object contains a 4-octet value in network byte order. The first octet is zero, the second octet contains the Domain_ID, and the last 2 octets contain the physical port number.
- if t11ZsZoneMemberFormat is 'N_Port_ID', then this object contains the 3-octet Nx_Port FC_ID.
- if t11ZsZoneMemberFormat is 'Alias Name', then this object contains the value of t11ZsAliasName for some Alias in the same Zone Set database.
- if t11ZsZoneMemberFormat is 'Node_Name', then this object contains an 8-octet Node_Name.
- if t11ZsZoneMemberFormat is 'F_Port_Name', then this object contains an 8-octet F_Port_Name.
- if t11ZsZoneMemberFormat is one of the 'Vendor Specific' values, then this object contains a value of 1 to 255 octets in a format defined by the relevant vendor.
This object cannot be modified while the corresponding value of t11ZsZoneMemberRowStatus object is 'active'.
t11ZsZoneMemberRowStatus
1.3.6.1.2.1.160.1.1.6.1.6
RowStatus1 = active2 = notInService3 = notReady4 = createAndGo5 = createAndWait6 = destroyThe RowStatus textual convention is used to manage the creation and deletion of conceptual rows, and is used as the value of the SYNTAX clause for the status column of a conceptual row (as described in Section 7.7.1 of [2].)
The status column has six defined values:
- `active', which indicates that the conceptual row is available for use by the managed device;
- `notInService', which indicates that the conceptual row exists in the agent, but is unavailable for use by the managed device (see NOTE below); 'notInService' has no implication regarding the internal consistency of the row, availability of resources, or consistency with the current state of the managed device;
- `notReady', which indicates that the conceptual row exists in the agent, but is missing information necessary in order to be available for use by the managed device (i.e., one or more required columns in the conceptual row have not been instanciated);
- `createAndGo', which is supplied by a management station wishing to create a new instance of a conceptual row and to have its status automatically set to active, making it available for use by the managed device;
- `createAndWait', which is supplied by a management station wishing to create a new instance of a conceptual row (but not make it available for use by the managed device); and, - `destroy', which is supplied by a management station wishing to delete all of the instances associated with an existing conceptual row.
Whereas five of the six values (all except `notReady') may be specified in a management protocol set operation, only three values will be returned in response to a management
protocol retrieval operation: `notReady', `notInService' or
`active'. That is, when queried, an existing conceptual row
has only three states: it is either available for use by
the managed device (the status column has value `active'); it is not available for use by the managed device, though the agent has sufficient information to attempt to make it so (the status column has value `notInService'); or, it is not available for use by the managed device, and an attempt to make it so would fail because the agent has insufficient information (the state column has value `notReady').
NOTE WELL
This textual convention may be used for a MIB table, irrespective of whether the values of that table's conceptual rows are able to be modified while it is active, or whether its conceptual rows must be taken out of service in order to be modified. That is, it is the responsibility of the DESCRIPTION clause of the status column to specify whether the status column must not be `active' in order for the value of some other column of the same conceptual row to be modified. If such a specification is made, affected columns may be changed by an SNMP set PDU if the RowStatus would not be equal to `active' either immediately before or after processing the PDU. In other words, if the PDU also contained a varbind that would change the RowStatus value, the column in question may be changed if the RowStatus was not equal to `active' as the PDU was received, or if the varbind sets the status to a value other than 'active'.
Also note that whenever any elements of a row exist, the RowStatus column must also exist.
To summarize the effect of having a conceptual row with a status column having a SYNTAX clause value of RowStatus, consider the following state diagram:
STATE +--------------+-----------+-------------+-------------
| A | B | C | D
| |status col.|status column|
|status column | is | is |status column
ACTION |does not exist| notReady | notInService| is active
--------------+--------------+-----------+-------------+-------------
set status |noError ->D|inconsist- |inconsistent-|inconsistent-
column to | or | entValue| Value| Value
createAndGo |inconsistent- | | |
| Value| | |
--------------+--------------+-----------+-------------+-------------
set status |noError see 1|inconsist- |inconsistent-|inconsistent-
column to | or | entValue| Value| Value
createAndWait |wrongValue | | |
--------------+--------------+-----------+-------------+-------------
set status |inconsistent- |inconsist- |noError |noError
column to | Value| entValue| |
active | | | |
| | or | |
| | | |
| |see 2 ->D|see 8 ->D| ->D
--------------+--------------+-----------+-------------+-------------
set status |inconsistent- |inconsist- |noError |noError ->C
column to | Value| entValue| |
notInService | | | |
| | or | | or
| | | |
| |see 3 ->C| ->C|see 6
--------------+--------------+-----------+-------------+-------------
set status |noError |noError |noError |noError ->A
column to | | | | or
destroy | ->A| ->A| ->A|see 7
--------------+--------------+-----------+-------------+-------------
set any other |see 4 |noError |noError |see 5
column to some| | | |
value | | see 1| ->C| ->D
--------------+--------------+-----------+-------------+-------------
(1) goto B or C, depending on information available to the agent.
(2) if other variable bindings included in the same PDU, provide values for all columns which are missing but required, and all columns have acceptable values, then return noError and goto D.
(3) if other variable bindings included in the same PDU, provide legal values for all columns which are missing but required, then return noError and goto C.
(4) at the discretion of the agent, the return value may be either:
inconsistentName: because the agent does not choose to
create such an instance when the corresponding RowStatus instance does not exist, or
inconsistentValue: if the supplied value is
inconsistent with the state of some other MIB object's value, or
noError: because the agent chooses to create the instance.
If noError is returned, then the instance of the status column must also be created, and the new state is B or C, depending on the information available to the agent. If inconsistentName or inconsistentValue is returned, the row remains in state A.
(5) depending on the MIB definition for the column/table, either noError or inconsistentValue may be returned.
(6) the return value can indicate one of the following errors:
wrongValue: because the agent does not support notInService (e.g., an agent which does not support createAndWait), or
inconsistentValue: because the agent is unable to take the row out of service at this time, perhaps because it is in use and cannot be de-activated.
(7) the return value can indicate the following error:
inconsistentValue: because the agent is unable to remove the row at this time, perhaps because it is in use and cannot be de-activated.
(8) the transition to D can fail, e.g., if the values of the conceptual row are inconsistent, then the error code would be inconsistentValue.
NOTE: Other processing of (this and other varbinds of) the set request may result in a response other than noError being returned, e.g., wrongValue, noCreation, etc.
Conceptual Row Creation
There are four potential interactions when creating a
conceptual row: selecting an instance-identifier which is
not in use; creating the conceptual row; initializing any objects for which the agent does not supply a default; and, making the conceptual row available for use by the managed device.
Interaction 1: Selecting an Instance-Identifier
The algorithm used to select an instance-identifier varies for each conceptual row. In some cases, the instance- identifier is semantically significant, e.g., the destination address of a route, and a management station selects the instance-identifier according to the semantics.
In other cases, the instance-identifier is used solely to distinguish conceptual rows, and a management station without specific knowledge of the conceptual row might examine the instances present in order to determine an unused instance-identifier. (This approach may be used, but it is often highly sub-optimal; however, it is also a questionable practice for a naive management station to attempt conceptual row creation.)
Alternately, the MIB module which defines the conceptual row might provide one or more objects which provide assistance in determining an unused instance-identifier. For example, if the conceptual row is indexed by an integer-value, then an object having an integer-valued SYNTAX clause might be defined for such a purpose, allowing a management station to issue a management protocol retrieval operation. In order to avoid unnecessary collisions between competing management stations, `adjacent' retrievals of this object should be different.
Finally, the management station could select a pseudo-random number to use as the index. In the event that this index
was already in use and an inconsistentValue was returned in response to the management protocol set operation, the management station should simply select a new pseudo-random number and retry the operation.
A MIB designer should choose between the two latter algorithms based on the size of the table (and therefore the efficiency of each algorithm). For tables in which a large number of entries are expected, it is recommended that a MIB object be defined that returns an acceptable index for creation. For tables with small numbers of entries, it is recommended that the latter pseudo-random index mechanism be used.
Interaction 2: Creating the Conceptual Row
Once an unused instance-identifier has been selected, the management station determines if it wishes to create and activate the conceptual row in one transaction or in a negotiated set of interactions.
Interaction 2a: Creating and Activating the Conceptual Row
The management station must first determine the column requirements, i.e., it must determine those columns for which it must or must not provide values. Depending on the complexity of the table and the management station's knowledge of the agent's capabilities, this determination can be made locally by the management station. Alternately, the management station issues a management protocol get operation to examine all columns in the conceptual row that it wishes to create. In response, for each column, there are three possible outcomes:
- a value is returned, indicating that some other management station has already created this conceptual row. We return to interaction 1.
- the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it should supply a value for this column when the conceptual row is to be created.
- the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column.
Once the column requirements have been determined, a management protocol set operation is accordingly issued. This operation also sets the new instance of the status column to `createAndGo'.
When the agent processes the set operation, it verifies that it has sufficient information to make the conceptual row available for use by the managed device. The information
available to the agent is provided by two sources: the
management protocol set operation which creates the conceptual row, and, implementation-specific defaults supplied by the agent (note that an agent must provide implementation-specific defaults for at least those objects which it implements as read-only). If there is sufficient information available, then the conceptual row is created, a `noError' response is returned, the status column is set to `active', and no further interactions are necessary (i.e., interactions 3 and 4 are skipped). If there is insufficient information, then the conceptual row is not created, and the set operation fails with an error of `inconsistentValue'. On this error, the management station can issue a management protocol retrieval operation to determine if this was because it failed to specify a value for a required column, or, because the selected instance of the status column already existed. In the latter case, we return to interaction 1. In the former case, the management station can re-issue the set operation with the additional information, or begin interaction 2 again using `createAndWait' in order to negotiate creation of the conceptual row.
NOTE WELL
Regardless of the method used to determine the column requirements, it is possible that the management station might deem a column necessary when, in fact, the agent will not allow that particular columnar instance to be created or written. In this case, the management protocol set operation will fail with an error such as `noCreation' or `notWritable'. In this case, the management station decides whether it needs to be able to set a value for that particular columnar instance. If not, the management station re-issues the management protocol set operation, but without setting a value for that particular columnar instance; otherwise, the management station aborts the row creation algorithm.
Interaction 2b: Negotiating the Creation of the Conceptual Row
The management station issues a management protocol set operation which sets the desired instance of the status column to `createAndWait'. If the agent is unwilling to process a request of this sort, the set operation fails with an error of `wrongValue'. (As a consequence, such an agent must be prepared to accept a single management protocol set operation, i.e., interaction 2a above, containing all of the
columns indicated by its column requirements.) Otherwise,
the conceptual row is created, a `noError' response is returned, and the status column is immediately set to either `notInService' or `notReady', depending on whether it has sufficient information to (attempt to) make the conceptual row available for use by the managed device. If there is sufficient information available, then the status column is set to `notInService'; otherwise, if there is insufficient information, then the status column is set to `notReady'. Regardless, we proceed to interaction 3.
Interaction 3: Initializing non-defaulted Objects
The management station must now determine the column requirements. It issues a management protocol get operation to examine all columns in the created conceptual row. In the response, for each column, there are three possible outcomes:
- a value is returned, indicating that the agent implements the object-type associated with this column and had sufficient information to provide a value. For those columns to which the agent provides read-create access (and for which the agent allows their values to be changed after their creation), a value return tells the management station that it may issue additional management protocol set operations, if it desires, in order to change the value associated with this column.
- the exception `noSuchInstance' is returned, indicating that the agent implements the object-type associated with this column, and that this column in at least one conceptual row would be accessible in the MIB view used by the retrieval were it to exist. However, the agent does not have sufficient information to provide a value, and until a value is provided, the conceptual row may not be made available for use by the managed device. For those columns to which the agent provides read-create access, the `noSuchInstance' exception tells the management station that it must issue additional management protocol set operations, in order to provide a value associated with this column.
- the exception `noSuchObject' is returned, indicating that the agent does not implement the object-type associated with this column or that there is no conceptual row for which this column would be accessible in the MIB view used by the retrieval. As such, the management station can not issue any management protocol set operations to create an instance of this column.
If the value associated with the status column is `notReady', then the management station must first deal with all `noSuchInstance' columns, if any. Having done so, the value of the status column becomes `notInService', and we proceed to interaction 4.
Interaction 4: Making the Conceptual Row Available
Once the management station is satisfied with the values associated with the columns of the conceptual row, it issues a management protocol set operation to set the status column to `active'. If the agent has sufficient information to make the conceptual row available for use by the managed device, the management protocol set operation succeeds (a `noError' response is returned). Otherwise, the management protocol set operation fails with an error of `inconsistentValue'.
NOTE WELL
A conceptual row having a status column with value `notInService' or `notReady' is unavailable to the managed device. As such, it is possible for the managed device to create its own instances during the time between the management protocol set operation which sets the status column to `createAndWait' and the management protocol set operation which sets the status column to `active'. In this case, when the management protocol set operation is issued to set the status column to `active', the values held in the agent supersede those used by the managed device.
If the management station is prevented from setting the status column to `active' (e.g., due to management station or network failure) the conceptual row will be left in the `notInService' or `notReady' state, consuming resources indefinitely. The agent must detect conceptual rows that have been in either state for an abnormally long period of time and remove them. It is the responsibility of the DESCRIPTION clause of the status column to indicate what an abnormally long period of time would be. This period of time should be long enough to allow for human response time (including `think time') between the creation of the conceptual row and the setting of the status to `active'. In the absence of such information in the DESCRIPTION clause, it is suggested that this period be approximately 5 minutes in length. This removal action applies not only to newly-created rows, but also to previously active rows which are set to, and left in, the notInService state for a prolonged period exceeding that which is considered normal for such a conceptual row.
Conceptual Row Suspension
When a conceptual row is `active', the management station may issue a management protocol set operation which sets the instance of the status column to `notInService'. If the agent is unwilling to do so, the set operation fails with an error of `wrongValue' or `inconsistentValue'. Otherwise, the conceptual row is taken out of service, and a `noError' response is returned. It is the responsibility of the DESCRIPTION clause of the status column to indicate under what circumstances the status column should be taken out of service (e.g., in order for the value of some other column of the same conceptual row to be modified).
Conceptual Row Deletion
For deletion of conceptual rows, a management protocol set operation is issued which sets the instance of the status column to `destroy'. This request may be made regardless of the current value of the status column (e.g., it is possible to delete conceptual rows which are either `notReady',
`notInService' or `active'.) If the operation succeeds,
then all instances associated with the conceptual row are immediately removed. · Integer32
The status of this conceptual row. The corresponding instances of t11ZsZoneMemberID and t11ZsZoneMemberFormat objects must be set before or concurrently with setting this object to 'active'.
This table gives information on all the Zone Attributes in the Zone Set database of the Zone Servers on each Fabric in one or more switches.
In Enhanced mode, changes to a database made via this table are always made to the 'copy' database, but values read from this table reflect the contents of either the 'copy' database or the current (committed) database as indicated by the corresponding value of t11ZsServerReadFromDatabase.
An arbitrary integer value that uniquely identifies this instance amongst all local Fibre Channel management instances.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts (but note, it is unrealistic to expect it to remain constant across all re-configurations of the local system, e.g., across the replacement of all non- volatile storage).
fcmSwitchIndex
Unsigned32 (1..4294967295)
An arbitrary integer that uniquely identifies a Fibre Channel switch amongst those managed by one Fibre Channel management instance.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts.
t11ZsAttribBlockIndex
1.3.6.1.2.1.160.1.1.7.1.1
Unsigned32 (1..4294967295)
An index value that uniquely identifies this Zone Attribute within the Zone Set database of a particular Fabric on a particular switch.
t11ZsAttribBlockName
1.3.6.1.2.1.160.1.1.7.1.2
T11ZoningNameThis datatype is a refinement of an SnmpAdminString, and is used to represent a name stored in a Fibre Channel Zoning Data Structure.
The value begins with an ASCII letter (upper or lower case) followed by zero or more characters from the set: lower case letters, upper case letters, numbers, and the symbols ($-^_).
The value does not include fill bytes.Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.8.1. SIZE (1..64) · OCTET STRING
The name of this Zone Attribute Block, which should be unique within the Fabric.
t11ZsAttribBlockRowStatus
1.3.6.1.2.1.160.1.1.7.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 table gives information on the Zone Attributes within the Zone Attribute Blocks in the Zone Set database of the Zone Servers on each Fabric in one or more switches.
In Enhanced mode, changes to a database made via this table are always made to the 'copy' database, but values read from this table reflect the contents of either the 'copy' database or the current (committed) database as indicated by the corresponding value of t11ZsServerReadFromDatabase.
An arbitrary integer value that uniquely identifies this instance amongst all local Fibre Channel management instances.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts (but note, it is unrealistic to expect it to remain constant across all re-configurations of the local system, e.g., across the replacement of all non- volatile storage).
fcmSwitchIndex
Unsigned32 (1..4294967295)
An arbitrary integer that uniquely identifies a Fibre Channel switch amongst those managed by one Fibre Channel management instance.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts.
t11ZsAttribIndex
1.3.6.1.2.1.160.1.1.8.1.1
Unsigned32 (1..4294967295)
An index value that uniquely identifies this Zone Attribute within its Zone Attribute Block in the Zone Set database of a particular Fabric on a particular switch.
t11ZsAttribType
1.3.6.1.2.1.160.1.1.8.1.2
Unsigned32 (0..65535)
The type of attribute:
0001 - Protocol
0002 - Broadcast Zone
0003 - Hard Zone
00E0 (hex) - Vendor Specific. Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.8.3.8, Table 249.
t11ZsAttribValue
1.3.6.1.2.1.160.1.1.8.1.3
OCTET STRING SIZE (4..252)
The value of the attribute, formatted as specified in FC-GS-5 for the type given by the corresponding instance of t11ZsAttribType.
Note that FC-GS-5 requires that the length of this value is a multiple of 4 bytes. Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.8.3.8.
t11ZsAttribRowStatus
1.3.6.1.2.1.160.1.1.8.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
An arbitrary integer value that uniquely identifies this instance amongst all local Fibre Channel management instances.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts (but note, it is unrealistic to expect it to remain constant across all re-configurations of the local system, e.g., across the replacement of all non- volatile storage).
fcmSwitchIndex
Unsigned32 (1..4294967295)
An arbitrary integer that uniquely identifies a Fibre Channel switch amongst those managed by one Fibre Channel management instance.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts.
t11ZsActivateRequest
1.3.6.1.2.1.160.1.1.9.1.1
Unsigned32
Setting this object to a value is a request for a Zone Set to be activated on the Fabric that is represented by this row. The Zone Set to be activated is the one for which t11ZsSetIndex has the same value.
If a Zone Set is already active on a Fabric when a request is made to activate a different one on that Fabric, then the existing Zone Set is automatically deactivated and the specified Zone Set is activated in its place.
The value of this object when read is always 0.
t11ZsActivateDeactivate
1.3.6.1.2.1.160.1.1.9.1.2
INTEGER1 = deactivate2 = noop · Integer32
Setting this object to 'deactivate' is a request to deactivate the currently active Zone Set on a Fabric.
Note that the deactivation of the active Zone Set allows all ports to communicate or no ports to communicate, depending on the current Default Zone behavior.
No action is taken if this object is set to 'noop'. When read, the value of this object is always 'noop'.
This object indicates the outcome of the most recent activation/deactivation using this entry.
When the value of this object is 'inProgress', the values of the corresponding instances of t11ZsActivateRequest and t11ZsActivateDeactivate cannot be modified.
The value 'none' indicates activation/deactivation has not been attempted since the last restart of the management system.
t11ZsActivateFailCause
1.3.6.1.2.1.160.1.1.9.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
A textual message indicating the reason for the most recent failure of a Zone Set activation or deactivation, or the zero-length string if no information is available (e.g., because the corresponding instance of t11ZsActivateResult has the value 'none').
When the corresponding instance of t11ZsActivateResult is either 'activateFailure' or 'deactivateFailure', the value of this object indicates the reason for that failure.
t11ZsActivateFailDomainId
1.3.6.1.2.1.160.1.1.9.1.5
FcDomainIdOrZeroThe Domain Id (of an FC switch), or zero if the no Domain Id has been assigned. (0..239) · Integer32
If the failure cause (as indicated by t11ZsSetFailCause) was specific to a particular device, this object contains the Domain_ID of that device. Otherwise, this object contains zero.
A table containing information on the currently enforced/active Zone Set on each Fabric. An active Zone Set cannot be modified. This table will be empty when no Zone Set is activated.
An arbitrary integer value that uniquely identifies this instance amongst all local Fibre Channel management instances.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts (but note, it is unrealistic to expect it to remain constant across all re-configurations of the local system, e.g., across the replacement of all non- volatile storage).
fcmSwitchIndex
Unsigned32 (1..4294967295)
An arbitrary integer that uniquely identifies a Fibre Channel switch amongst those managed by one Fibre Channel management instance.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts.
t11ZsActiveZoneSetName
1.3.6.1.2.1.160.1.1.10.1.1
T11ZoningNameThis datatype is a refinement of an SnmpAdminString, and is used to represent a name stored in a Fibre Channel Zoning Data Structure.
The value begins with an ASCII letter (upper or lower case) followed by zero or more characters from the set: lower case letters, upper case letters, numbers, and the symbols ($-^_).
The value does not include fill bytes.Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.8.1. SIZE (1..64) · OCTET STRING
The name of this Zone Set on this Fabric.
t11ZsActiveActivateTime
1.3.6.1.2.1.160.1.1.10.1.2
TimeStampThe value of the sysUpTime object at which a specific occurrence happened. The specific occurrence must be
defined in the description of any object defined using this type.
If sysUpTime is reset to zero as a result of a re- initialization of the network management (sub)system, then the values of all TimeStamp objects are also reset. However, after approximately 497 days without a re- initialization, the sysUpTime object will reach 2^^32-1 and then increment around to zero; in this case, existing values of TimeStamp objects do not change. This can lead to ambiguities in the value of TimeStamp objects. · TimeTicks
The value of sysUpTime at which this entry was most recently activated. If this row was activated prior to the last re-initialization of the local network management system, then this object will contain a zero value.
An arbitrary integer value that uniquely identifies this instance amongst all local Fibre Channel management instances.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts (but note, it is unrealistic to expect it to remain constant across all re-configurations of the local system, e.g., across the replacement of all non- volatile storage).
fcmSwitchIndex
Unsigned32 (1..4294967295)
An arbitrary integer that uniquely identifies a Fibre Channel switch amongst those managed by one Fibre Channel management instance.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts.
t11ZsActiveZoneIndex
1.3.6.1.2.1.160.1.1.11.1.1
Unsigned32 (1..4294967295)
An index value that uniquely identifies this Zone within the active Zone Set on a particular Fabric.
t11ZsActiveZoneName
1.3.6.1.2.1.160.1.1.11.1.2
T11ZoningNameThis datatype is a refinement of an SnmpAdminString, and is used to represent a name stored in a Fibre Channel Zoning Data Structure.
The value begins with an ASCII letter (upper or lower case) followed by zero or more characters from the set: lower case letters, upper case letters, numbers, and the symbols ($-^_).
The value does not include fill bytes.Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.8.1. SIZE (1..64) · OCTET STRING
The name of this Zone.
t11ZsActiveZoneBroadcastZoning
1.3.6.1.2.1.160.1.1.11.1.3
TruthValue1 = true2 = falseRepresents a boolean value. · Integer32
This object indicates whether broadcast Zoning is enabled on this Zone. If broadcast Zoning is enabled, then broadcast frames generated by a member in this Zone will be restricted to members in this Zone.
This object is only instantiated in Enhanced mode.
t11ZsActiveZoneHardZoning
1.3.6.1.2.1.160.1.1.11.1.4
TruthValue1 = true2 = falseRepresents a boolean value. · Integer32
This object indicates whether hard Zoning is enabled on this Zone.
This object is only instantiated in Enhanced mode.
An arbitrary integer value that uniquely identifies this instance amongst all local Fibre Channel management instances.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts (but note, it is unrealistic to expect it to remain constant across all re-configurations of the local system, e.g., across the replacement of all non- volatile storage).
fcmSwitchIndex
Unsigned32 (1..4294967295)
An arbitrary integer that uniquely identifies a Fibre Channel switch amongst those managed by one Fibre Channel management instance.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts.
t11ZsActiveZoneMemberIndex
1.3.6.1.2.1.160.1.1.12.1.1
Unsigned32 (1..4294967295)
An index value that uniquely identifies this member amongst the members of a particular Zone in the active Zone Set on a particular Fabric.
t11ZsActiveZoneMemberFormat
1.3.6.1.2.1.160.1.1.12.1.2
T11ZsZoneMemberTypeRepresents the addressing mechanism by which a member is identified:
01 - N_Port_Name 02 - Domain_ID and physical port 03 - N_Port_ID 04 - Node_Name 05 - Alias Name 06 - F_Port_Name E0-FF (hex) - Vendor Specific.Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.8.3.6. (0..255) · Unsigned32 · hint x
This object identifies the identifier format of the corresponding instance of t11ZsActiveZoneMemberID.
t11ZsActiveZoneMemberID
1.3.6.1.2.1.160.1.1.12.1.3
OCTET STRING SIZE (1..255)
This value of this object identifies the member using the format specified in the corresponding instance of t11ZsActiveZoneMemberFormat.
This table contains information about some of the Attributes of the Zones within the active Zone Set on each Fabric.
This table contains all the types of attributes that might apply zero, one, or more times to a Zone. Attributes that apply once and only to a Zone are specified in the t11ZsActiveZoneTable.
This table will always be empty in Basic mode. It will also be empty if there are no Zones in any active Zone Set having any of the applicable types of attributes.
An arbitrary integer value that uniquely identifies this instance amongst all local Fibre Channel management instances.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts (but note, it is unrealistic to expect it to remain constant across all re-configurations of the local system, e.g., across the replacement of all non- volatile storage).
fcmSwitchIndex
Unsigned32 (1..4294967295)
An arbitrary integer that uniquely identifies a Fibre Channel switch amongst those managed by one Fibre Channel management instance.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts.
t11ZsActiveAttribIndex
1.3.6.1.2.1.160.1.1.13.1.1
Unsigned32 (1..4294967295)
An index value that uniquely identifies this attribute amongst the other attributes for a particular Zone in the active Zone Set on a particular Fabric.
t11ZsActiveAttribType
1.3.6.1.2.1.160.1.1.13.1.2
Unsigned32 (0..65535)
The type of attribute:
0001 - Protocol
00E0 (hex) - Vendor Specific
Note that type 2 (Hard) and type 3 (Broadcast) do not need to be represented here, because they are represented by t11ZsActiveZoneBroadcastZoning and t11ZsActiveZoneHardZoning. Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.8.3.8, Table 249.
t11ZsActiveAttribValue
1.3.6.1.2.1.160.1.1.13.1.3
OCTET STRING SIZE (0..252)
The value of the attribute, formatted according to its type as indicated by the corresponding instance of t11ZsActiveAttribType.
As specified in FC-GS-5, the length of an attribute value is at least 4 bytes, and if necessary, the value is appended with zero bytes so that the length is a multiple of 4. For a Vendor-Specific attribute value, the first 8 bytes contain the T10 Vendor ID as described in FC-GS-5. Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.8.3.8.
An arbitrary integer value that uniquely identifies this instance amongst all local Fibre Channel management instances.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts (but note, it is unrealistic to expect it to remain constant across all re-configurations of the local system, e.g., across the replacement of all non- volatile storage).
fcmSwitchIndex
Unsigned32 (1..4294967295)
An arbitrary integer that uniquely identifies a Fibre Channel switch amongst those managed by one Fibre Channel management instance.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts.
t11ZsNotifyRequestRejectEnable
1.3.6.1.2.1.160.1.1.14.1.1
TruthValue1 = true2 = falseRepresents a boolean value. · Integer32
This object specifies whether t11ZsRequestRejectNotify notifications should be generated by the Zone Server for this Fabric.
t11ZsNotifyMergeFailureEnable
1.3.6.1.2.1.160.1.1.14.1.2
TruthValue1 = true2 = falseRepresents a boolean value. · Integer32
This object specifies whether t11ZsMergeFailureNotify notifications should be generated by the Zone Server for this Fabric.
t11ZsNotifyMergeSuccessEnable
1.3.6.1.2.1.160.1.1.14.1.3
TruthValue1 = true2 = falseRepresents a boolean value. · Integer32
This object specifies whether t11ZsMergeSuccessNotify notifications should be generated by the Zone Server for this Fabric.
t11ZsNotifyDefZoneChangeEnable
1.3.6.1.2.1.160.1.1.14.1.4
TruthValue1 = true2 = falseRepresents a boolean value. · Integer32
This object specifies whether t11ZsDefZoneChangeNotify notifications should be generated by the Zone Server for this Fabric.
t11ZsNotifyActivateEnable
1.3.6.1.2.1.160.1.1.14.1.5
TruthValue1 = true2 = falseRepresents a boolean value. · Integer32
This object specifies whether t11ZsActivateNotify notifications should be generated by the Zone Server for this Fabric.
t11ZsRejectCtCommandString
1.3.6.1.2.1.160.1.1.14.1.6
OCTET STRING SIZE (0..255)
The binary content of the Zone Server request, formatted as an octet string (in network byte order) containing the Common Transport Information Unit (CT_IU), as described in Table 2 of FC-GS-5 (including the preamble), which was most recently rejected by the Fabric Configuration Server for this Fabric.
This object contains the zero-length string if and when the CT-IU's content is unavailable.
When the length of this object is 255 octets, it contains the first 255 octets of the CT-IU (in network byte order).
t11ZsRejectRequestSource
1.3.6.1.2.1.160.1.1.14.1.7
FcNameIdOrZeroThe World Wide Name (WWN) associated with a Fibre Channel (FC) entity. WWNs were initially defined as 64-bits in length. The latest definition (for future use) is 128-bits long. The zero-length string value is used in circumstances in which the WWN is unassigned/unknown. SIZE (0 | 8 | 16) · OCTET STRING
The WWN that was the source of the CT_IU contained in the corresponding instance of t11ZsRejectCtCommandString.
t11ZsRejectReasonCode
1.3.6.1.2.1.160.1.1.14.1.8
T11NsGs4RejectReasonCode1 = none2 = invalidCmdCode3 = invalidVerLevel4 = logicalError5 = invalidIUSize6 = logicalBusy7 = protocolError8 = unableToPerformCmdReq9 = cmdNotSupported10 = serverNotAvailable11 = couldNotEstabSession12 = vendorErrorThe FC-GS-4 reject reason code for a request.
none(1) - no error. invalidCmdCode(2) - request contained an invalid command code. invalidVerLevel(3) - request contained an invalid version number. logicalError(4) - there was a logical error. invalidIUSize(5) - the CT_IU (Information Unit) size was invalid. logicalBusy(6) - the module is busy. protocolError(7) - there was a protocol error. unableToPerformCmdReq(8) - the command specified in the req could not be executed. The details of exactly what failed will be in the corresponding reason code explanation. cmdNotSupported(9) - the command is not supported. serverNotAvailable(10) - the identified server was not available. couldNotEstabSession(11) - a server session could not be established. vendorError(12) - a vendor-specific error.Reference: ANSI INCITS 387-2004, Fibre Channel - Generic Services-4 (FC-GS-4), section 4.4.3. · Integer32
The reason code corresponding to the most recent rejection of a request by the Zone Server for this Fabric.
t11ZsRejectReasonCodeExp
1.3.6.1.2.1.160.1.1.14.1.9
T11ZsRejectReasonExplanation1 = other2 = noAdditionalExplanation3 = zonesNotSupported4 = zoneSetNameUnknown5 = noZoneSetActive6 = zoneNameUnknown7 = zoneStateUnknown8 = incorrectPayloadLen9 = tooLargeZoneSet10 = deactivateZoneSetFailed11 = reqNotSupported12 = capabilityNotSupported13 = zoneMemberIDTypeNotSupp14 = invalidZoneSetDefinition15 = enhancedZoningCmdsNotSupported16 = zoneSetExists17 = zoneExists18 = aliasExists19 = zoneSetUnknown20 = zoneUnknown21 = aliasUnknown22 = zoneAliasTypeUnknown23 = unableEnhancedMode24 = basicZoningCmdsNotSupported25 = zoneAttribObjectExists26 = zoneAttribObjectUnknown27 = requestInProcess28 = cmitInProcess29 = hardEnforcementFailed30 = unresolvedReferences31 = consistencyChecksFailedThe reason code explanation when rejecting a Zone Server request:
'other' - e.g., a reason code assigned too recently to be included in this version of this MIB 'noAdditionalExplanation' - there is no additional explanation 'zonesNotSupported' - Zones are not supported 'zoneSetNameUnknown' - Zone Set name is not known 'noZoneSetActive' - no Zone Set is currently active 'zoneNameUnknown' - Zone name is unknown 'zoneStateUnknown' - state of the Zone is not known 'incorrectPayloadLen' - payload length is not correct 'tooLargeZoneSet' - Zone Set is larger than permitted size 'deactivateZoneSetFailed' - deactivation of Zone Set failed 'reqNotSupported' - request is not supported 'capabilityNotSupported' - capability is not supported 'zoneMemberIDTypeNotSupp' - Zone Member Identifier Type is not supported 'invalidZoneSetDefinition' - Zone Set definition is invalid 'enhancedZoningCmdsNotSupported' - Enhanced Zoning commands are not supported 'zoneSetExists' - Zone Set already exists 'zoneExists' - Zone already exists 'aliasExists' - Zone Alias already exists 'zoneSetUnknown' - Zone Set unknown 'zoneUnknown' - Zone unknown 'aliasUnknown' - Zone Alias unknown 'zoneAliasTypeUnknown' - unknown Zone attribute type 'unableEnhancedMode' - Fabric unable to work in Enhanced Mode 'basicZoningCmdsNotSupported' - Basic Zoning commands are not supported 'zoneAttribObjectExists' - Zone attribute object already exists 'zoneAttribObjectUnknown' - Zone attribute object unknown 'requestInProcess' - request in process 'cmitInProcess' - CMIT in process 'hardEnforcementFailed' - hard enforcement failed 'unresolvedReferences' - unresolved references in the Zone Set Database 'consistencyChecksFailed' - consistency checks failed.Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.9. · Integer32
When the value of t11ZsRejectReasonCode is 'Unable to perform command request', this object contains the corresponding reason code explanation.
t11ZsRejectReasonVendorCode
1.3.6.1.2.1.160.1.1.14.1.10
OCTET STRING SIZE (1)
When the value of t11ZsRejectReasonCode is 'Vendor Specific Error', this object contains the corresponding vendor-specific reason code.
An arbitrary integer value that uniquely identifies this instance amongst all local Fibre Channel management instances.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts (but note, it is unrealistic to expect it to remain constant across all re-configurations of the local system, e.g., across the replacement of all non- volatile storage).
fcmSwitchIndex
Unsigned32 (1..4294967295)
An arbitrary integer that uniquely identifies a Fibre Channel switch amongst those managed by one Fibre Channel management instance.
It is mandatory to keep this value constant between restarts of the agent, and to make every possible effort to keep it constant across restarts.
t11ZsOutMergeRequests
1.3.6.1.2.1.160.1.2.1.1.1
Counter32
The number of Merge Request Frames sent by this Zone Server to other Zone Servers in the same Fabric.
This counter has no discontinuities other than those that all Counter32s have when sysUpTime=0.
t11ZsInMergeAccepts
1.3.6.1.2.1.160.1.2.1.1.2
Counter32
The number of Merge Accept Frames received by this Zone Server from other Zone Servers in the same Fabric.
This counter has no discontinuities other than those that all Counter32s have when sysUpTime=0.
t11ZsInMergeRequests
1.3.6.1.2.1.160.1.2.1.1.3
Counter32
The number of Merge Request Frames received by this Zone Server from other Zone Servers in the same Fabric.
This counter has no discontinuities other than those that all Counter32s have when sysUpTime=0.
t11ZsOutMergeAccepts
1.3.6.1.2.1.160.1.2.1.1.4
Counter32
The number of Merge Accept Frames sent by this Zone Server to other Zone Servers in the same Fabric.
This counter has no discontinuities other than those that all Counter32s have when sysUpTime=0.
t11ZsOutChangeRequests
1.3.6.1.2.1.160.1.2.1.1.5
Counter32
The number of change requests sent (via the Fabric Management Session Protocol) by this Zone Server to other Zone Servers in the same Fabric. This includes Acquire Change Authorization requests, Stage Fabric Config Update requests, Update Fabric Config requests and Release Change Authorization requests. It also includes the corresponding types of requests defined by the Enhanced Commit Service.
This counter has no discontinuities other than those that all Counter32s have when sysUpTime=0. Reference: Fibre Channel - Switch Fabric-4 (FC-SW-4), ANSI INCITS 418-2006, April 2006, sections 10.6 and 13.
t11ZsInChangeAccepts
1.3.6.1.2.1.160.1.2.1.1.6
Counter32
The number of SW_ACC messages received from other Zone Servers in the same Fabric (according to the Fabric Management Session Protocol) in response to change requests by this Zone Server.
This includes SW_ACC messages received in response to Acquire Change Authorization requests, to Stage Fabric Config Update requests, to Update Fabric Config requests, and to Release Change Authorization requests. It also includes responses to the corresponding types of requests defined for the Enhanced Commit Service.
This counter has no discontinuities other than those that all Counter32s have when sysUpTime=0. Reference: Fibre Channel - Switch Fabric-4 (FC-SW-4), ANSI INCITS 418-2006, April 2006, sections 10.6 and 13.
t11ZsInChangeRequests
1.3.6.1.2.1.160.1.2.1.1.7
Counter32
The number of change requests received (via the Fabric Management Session Protocol) by this Zone Server from other Zone Servers in the same Fabric.
This includes Acquire Change Authorization requests, Stage Fabric Config Update requests, Update Fabric Config requests and Release Change Authorization requests. It also includes the corresponding types of requests defined by the Enhanced Commit Service.
This counter has no discontinuities other than those that all Counter32s have when sysUpTime=0. Reference: Fibre Channel - Switch Fabric-4 (FC-SW-4), ANSI INCITS 418-2006, April 2006, sections 10.6 and 13.
t11ZsOutChangeAccepts
1.3.6.1.2.1.160.1.2.1.1.8
Counter32
The number of SW_ACC messages sent by this Zone Server (according to the Fabric Management Session Protocol) in response to change requests from other Zone Servers in the same Fabric.
This includes SW_ACC messages sent in response to Acquire Change Authorization requests, to Stage Fabric Config Update requests, to Update Fabric Config requests and to Release Change Authorization requests. It also includes responses to the corresponding types of requests defined for the Enhanced Commit Service.
This counter has no discontinuities other than those that all Counter32s have when sysUpTime=0. Reference: Fibre Channel - Switch Fabric-4 (FC-SW-4), ANSI INCITS 418-2006, April 2006, sections 10.6 and 13.
t11ZsInZsRequests
1.3.6.1.2.1.160.1.2.1.1.9
Counter32
The number of Zone Server requests received by this Zone Server on this Fabric, both those received in Basic mode and in Enhanced mode.
This counter has no discontinuities other than those that all Counter32s have when sysUpTime=0.
t11ZsOutZsRejects
1.3.6.1.2.1.160.1.2.1.1.10
Counter32
The number of Zone Server requests rejected by this Zone Server on this Fabric, both those rejected in Basic mode and in Enhanced mode.
This counter has no discontinuities other than those that all Counter32s have when sysUpTime=0.
Trap details
t11ZsRequestRejectNotify
1.3.6.1.2.1.160.0.1
This notification is generated whenever a Zone Server (indicated by the value of t11FamLocalSwitchWwn) rejects a request.
The value of t11ZsRejectCtCommandString indicates the rejected request, and the values of t11ZsRejectReasonCode, t11ZsRejectReasonCodeExp and t11ZsRejectReasonVendorCode indicate the reason for the rejection. The value of t11ZsRequestClient indicates the source of the request.
t11FamLocalSwitchWwn
1.3.6.1.2.1.137.1.1.1.1.8
FcNameIdOrZeroThe World Wide Name (WWN) associated with a Fibre Channel (FC) entity. WWNs were initially defined as 64-bits in length. The latest definition (for future use) is 128-bits long. The zero-length string value is used in circumstances in which the WWN is unassigned/unknown. SIZE (0 | 8 | 16) · OCTET STRING
The WWN of the particular switch on this Fabric.
t11ZsRejectRequestSource
1.3.6.1.2.1.160.1.1.14.1.7
FcNameIdOrZeroThe World Wide Name (WWN) associated with a Fibre Channel (FC) entity. WWNs were initially defined as 64-bits in length. The latest definition (for future use) is 128-bits long. The zero-length string value is used in circumstances in which the WWN is unassigned/unknown. SIZE (0 | 8 | 16) · OCTET STRING
The WWN that was the source of the CT_IU contained in the corresponding instance of t11ZsRejectCtCommandString.
t11ZsRejectCtCommandString
1.3.6.1.2.1.160.1.1.14.1.6
OCTET STRING SIZE (0..255)
The binary content of the Zone Server request, formatted as an octet string (in network byte order) containing the Common Transport Information Unit (CT_IU), as described in Table 2 of FC-GS-5 (including the preamble), which was most recently rejected by the Fabric Configuration Server for this Fabric.
This object contains the zero-length string if and when the CT-IU's content is unavailable.
When the length of this object is 255 octets, it contains the first 255 octets of the CT-IU (in network byte order).
t11ZsRejectReasonCode
1.3.6.1.2.1.160.1.1.14.1.8
T11NsGs4RejectReasonCode1 = none2 = invalidCmdCode3 = invalidVerLevel4 = logicalError5 = invalidIUSize6 = logicalBusy7 = protocolError8 = unableToPerformCmdReq9 = cmdNotSupported10 = serverNotAvailable11 = couldNotEstabSession12 = vendorErrorThe FC-GS-4 reject reason code for a request.
none(1) - no error. invalidCmdCode(2) - request contained an invalid command code. invalidVerLevel(3) - request contained an invalid version number. logicalError(4) - there was a logical error. invalidIUSize(5) - the CT_IU (Information Unit) size was invalid. logicalBusy(6) - the module is busy. protocolError(7) - there was a protocol error. unableToPerformCmdReq(8) - the command specified in the req could not be executed. The details of exactly what failed will be in the corresponding reason code explanation. cmdNotSupported(9) - the command is not supported. serverNotAvailable(10) - the identified server was not available. couldNotEstabSession(11) - a server session could not be established. vendorError(12) - a vendor-specific error.Reference: ANSI INCITS 387-2004, Fibre Channel - Generic Services-4 (FC-GS-4), section 4.4.3. · Integer32
The reason code corresponding to the most recent rejection of a request by the Zone Server for this Fabric.
t11ZsRejectReasonCodeExp
1.3.6.1.2.1.160.1.1.14.1.9
T11ZsRejectReasonExplanation1 = other2 = noAdditionalExplanation3 = zonesNotSupported4 = zoneSetNameUnknown5 = noZoneSetActive6 = zoneNameUnknown7 = zoneStateUnknown8 = incorrectPayloadLen9 = tooLargeZoneSet10 = deactivateZoneSetFailed11 = reqNotSupported12 = capabilityNotSupported13 = zoneMemberIDTypeNotSupp14 = invalidZoneSetDefinition15 = enhancedZoningCmdsNotSupported16 = zoneSetExists17 = zoneExists18 = aliasExists19 = zoneSetUnknown20 = zoneUnknown21 = aliasUnknown22 = zoneAliasTypeUnknown23 = unableEnhancedMode24 = basicZoningCmdsNotSupported25 = zoneAttribObjectExists26 = zoneAttribObjectUnknown27 = requestInProcess28 = cmitInProcess29 = hardEnforcementFailed30 = unresolvedReferences31 = consistencyChecksFailedThe reason code explanation when rejecting a Zone Server request:
'other' - e.g., a reason code assigned too recently to be included in this version of this MIB 'noAdditionalExplanation' - there is no additional explanation 'zonesNotSupported' - Zones are not supported 'zoneSetNameUnknown' - Zone Set name is not known 'noZoneSetActive' - no Zone Set is currently active 'zoneNameUnknown' - Zone name is unknown 'zoneStateUnknown' - state of the Zone is not known 'incorrectPayloadLen' - payload length is not correct 'tooLargeZoneSet' - Zone Set is larger than permitted size 'deactivateZoneSetFailed' - deactivation of Zone Set failed 'reqNotSupported' - request is not supported 'capabilityNotSupported' - capability is not supported 'zoneMemberIDTypeNotSupp' - Zone Member Identifier Type is not supported 'invalidZoneSetDefinition' - Zone Set definition is invalid 'enhancedZoningCmdsNotSupported' - Enhanced Zoning commands are not supported 'zoneSetExists' - Zone Set already exists 'zoneExists' - Zone already exists 'aliasExists' - Zone Alias already exists 'zoneSetUnknown' - Zone Set unknown 'zoneUnknown' - Zone unknown 'aliasUnknown' - Zone Alias unknown 'zoneAliasTypeUnknown' - unknown Zone attribute type 'unableEnhancedMode' - Fabric unable to work in Enhanced Mode 'basicZoningCmdsNotSupported' - Basic Zoning commands are not supported 'zoneAttribObjectExists' - Zone attribute object already exists 'zoneAttribObjectUnknown' - Zone attribute object unknown 'requestInProcess' - request in process 'cmitInProcess' - CMIT in process 'hardEnforcementFailed' - hard enforcement failed 'unresolvedReferences' - unresolved references in the Zone Set Database 'consistencyChecksFailed' - consistency checks failed.Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.9. · Integer32
When the value of t11ZsRejectReasonCode is 'Unable to perform command request', this object contains the corresponding reason code explanation.
t11ZsRejectReasonVendorCode
1.3.6.1.2.1.160.1.1.14.1.10
OCTET STRING SIZE (1)
When the value of t11ZsRejectReasonCode is 'Vendor Specific Error', this object contains the corresponding vendor-specific reason code.
t11ZsMergeFailureNotify
1.3.6.1.2.1.160.0.2
This notification indicates that a Zone merge failure has occurred on the Fabric indicated by the value of t11ZsFabricIndex, on the interface indicated by the value of ifIndex.
If multiple Virtual Fabrics are configured on an interface, and all have a Zone merge failure at the same time, then just one notification is generated and t11ZsFabricIndex has the value 4096.
ifIndex
1.3.6.1.2.1.2.2.1.1
InterfaceIndexA unique value, greater than zero, for each interface or interface sub-layer in the managed system. It is recommended that values are assigned contiguously starting from 1. The value for each interface sub-layer must remain constant at least from one re-initialization of the entity's network management system to the next re-initialization. (1..2147483647) · Integer32 · hint d
A unique value, greater than zero, for each interface. It is recommended that values are assigned contiguously starting from 1. The value for each interface sub-layer must remain constant at least from one re-initialization of the entity's network management system to the next re- initialization.
t11ZsFabricIndex
1.3.6.1.2.1.160.1.1.15
Unsigned32 (0..4096)
This object contains either a value of T11FabricIndex to identify the Fabric on which some occurrence has caused a notification to be generated, or it has the value 4096 to indicate all applicable Fabrics.
t11ZsMergeSuccessNotify
1.3.6.1.2.1.160.0.3
This notification indicates that a successful Zone merge has occurred on the Fabric indicated by the value of t11ZsFabricIndex, on the interface indicated by the value of ifIndex.
If multiple Virtual Fabrics are configured on an interface, and all have a successful Zone Merge at the same time, then just one notification is generated and t11ZsFabricIndex has the value 4096.
ifIndex
1.3.6.1.2.1.2.2.1.1
InterfaceIndexA unique value, greater than zero, for each interface or interface sub-layer in the managed system. It is recommended that values are assigned contiguously starting from 1. The value for each interface sub-layer must remain constant at least from one re-initialization of the entity's network management system to the next re-initialization. (1..2147483647) · Integer32 · hint d
A unique value, greater than zero, for each interface. It is recommended that values are assigned contiguously starting from 1. The value for each interface sub-layer must remain constant at least from one re-initialization of the entity's network management system to the next re- initialization.
t11ZsFabricIndex
1.3.6.1.2.1.160.1.1.15
Unsigned32 (0..4096)
This object contains either a value of T11FabricIndex to identify the Fabric on which some occurrence has caused a notification to be generated, or it has the value 4096 to indicate all applicable Fabrics.
t11ZsDefZoneChangeNotify
1.3.6.1.2.1.160.0.4
This notification indicates that the value of a Default Zone Setting has changed. The value of t11ZsServerDefaultZoneSetting contains the value after the change.
t11ZsServerDefaultZoneSetting
1.3.6.1.2.1.160.1.1.1.1.15
INTEGER1 = permit2 = deny · Integer32
This object controls the Enhanced Zoning flag that governs the behavior of the Default Zone on this Fabric.
If this object is set to 'permit', then the members of the Default Zone on this Fabric can communicate with each other. If this object is set to 'deny', then the members of the Default Zone on this Fabric cannot communicate with each other. Reference: Fibre Channel - Generic Services-5 (FC-GS-5), ANSI INCITS 427-2007, section 6.4.10.1.1.
t11ZsActivateNotify
1.3.6.1.2.1.160.0.5
This notification is generated whenever a switch (indicated by the value of t11FamLocalSwitchWwn) activates/deactivates a Zone Set on a Fabric. The t11ZsActivateResult object denotes the outcome of the activation/deactivation.
t11FamLocalSwitchWwn
1.3.6.1.2.1.137.1.1.1.1.8
FcNameIdOrZeroThe World Wide Name (WWN) associated with a Fibre Channel (FC) entity. WWNs were initially defined as 64-bits in length. The latest definition (for future use) is 128-bits long. The zero-length string value is used in circumstances in which the WWN is unassigned/unknown. SIZE (0 | 8 | 16) · OCTET STRING
This object indicates the outcome of the most recent activation/deactivation using this entry.
When the value of this object is 'inProgress', the values of the corresponding instances of t11ZsActivateRequest and t11ZsActivateDeactivate cannot be modified.
The value 'none' indicates activation/deactivation has not been attempted since the last restart of the management system.