-- ********************************************************************* -- CISCO-DYNAMIC-PORT-VSAN-MIB.my: Dynamic Port VSAN Membership MIB -- -- January 2004, H K Vivek -- -- Copyright (c) 2004 by cisco Systems, Inc. -- All rights reserved. -- -- ********************************************************************* CISCO-DYNAMIC-PORT-VSAN-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, Unsigned32 FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF TEXTUAL-CONVENTION, RowStatus, TruthValue FROM SNMPv2-TC ciscoMgmt FROM CISCO-SMI FcNameId, FcNameIdOrZero, VsanIndex FROM CISCO-ST-TC CpsmDbActivate, CpsmActivateResult, CpsmDiffDb, CpsmDiffReason FROM CISCO-PSM-MIB ifIndex FROM IF-MIB; ciscoDpvmMIB MODULE-IDENTITY LAST-UPDATED "200406220000Z" ORGANIZATION "Cisco Systems Inc." CONTACT-INFO " Cisco Systems Customer Service Postal: 170 W Tasman Drive San Jose, CA 95134 USA Tel: +1 800 553-NETS E-mail: cs-san@cisco.com" DESCRIPTION "The MIB module for the management of the Dynamic Port Vsan Membership (DPVM) module. DPVM provides the ability to assign (virtual storage area network) VSAN IDs dynamically to switch ports based on the device logging in on the port. The logging-in device can be identified by its port World Wide Name (pWWN) and/or its node World Wide Name (nWWN)." REVISION "200406220000Z" DESCRIPTION "Initial version of this MIB." ::= { ciscoMgmt 421 } ciscoDpvmMIBNotifs OBJECT IDENTIFIER ::= { ciscoDpvmMIB 0 } ciscoDpvmMIBObjects OBJECT IDENTIFIER ::= { ciscoDpvmMIB 1 } ciscoDpvmMIBConform OBJECT IDENTIFIER ::= { ciscoDpvmMIB 2 } cdpvmConfiguration OBJECT IDENTIFIER ::= { ciscoDpvmMIBObjects 1 } -- Textual-Conventions CdpvmDevType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Represents the type of device. pwwn(1) - Represents the port WWN of the device. nwwn(2) - Represents the node WWN of the device." SYNTAX INTEGER { pwwn(1), nwwn(2) } -- Configuration table cdpvmNextAvailIndex OBJECT-TYPE SYNTAX Unsigned32 (0..16384) MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains an appropriate value to be used for cdpvmIndex when creating entries in the cdpvmTable. The value 0 indicates that all entries are assigned. A management application should read this object, get the (non-zero) value and use same for creating an entry in the cdpvmTable. After each retrieval and use, the agent should modify the value to the next unassigned index. After a manager retrieves a value the agent will determine through its local policy when this index value will be made available for reuse. A suggested mechanism is to make an index available when the corresponding entry is deleted." ::= { cdpvmConfiguration 1 } cdpvmTable OBJECT-TYPE SYNTAX SEQUENCE OF CdpvmEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains the set of all valid bindings of devices to VSANs configured on the local device. A valid binding consists of a pWWN/nWWN bound to a VSAN. If a device is bound to a VSAN, then when that device logs in through a port on the local device, that port is assigned the configured VSAN. Such a VSAN is called a 'dynamic' VSAN. The set of valid bindings configured in this table should be activated by means of the cdpvmActivate object. When activated, these bindings are enforced and all subsequent logins will be subject to these bindings." ::= { cdpvmConfiguration 2 } cdpvmEntry OBJECT-TYPE SYNTAX CdpvmEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (conceptual row) in this table. Each entry contains the mapping between a device and its dynamic VSAN." INDEX { cdpvmIndex } ::= { cdpvmTable 1 } CdpvmEntry ::= SEQUENCE { cdpvmIndex Unsigned32, cdpvmLoginDevType CdpvmDevType, cdpvmLoginDev FcNameId, cdpvmLoginDevVsan VsanIndex, cdpvmRowStatus RowStatus } cdpvmIndex OBJECT-TYPE SYNTAX Unsigned32 (1..16384) MAX-ACCESS not-accessible STATUS current DESCRIPTION "Identifies a binding between a device and its dynamic VSAN." ::= { cdpvmEntry 1 } cdpvmLoginDevType OBJECT-TYPE SYNTAX CdpvmDevType MAX-ACCESS read-create STATUS current DESCRIPTION "Specifies the type of the corresponding instance of cdpvmLoginDev object." DEFVAL { pwwn } ::= { cdpvmEntry 2 } cdpvmLoginDev OBJECT-TYPE SYNTAX FcNameId MAX-ACCESS read-create STATUS current DESCRIPTION "Represents the logging-in device. If the value of the corresponding instance of cdpvmLoginDevType is 'pwwn', then this object contains a pWWN. If the value of the corresponding instance of cdpvmLoginDevType is 'nwwn', then this object contains a nWWN. This object MUST be set to a valid value before or concurrently with setting the corresponding instance of cdpvmRowStatus to 'active'. The agent should not allow creation of 2 entries in this table with same values for cdpvmLoginDev and cdpvmLoginDevVsan." ::= { cdpvmEntry 3 } cdpvmLoginDevVsan OBJECT-TYPE SYNTAX VsanIndex MAX-ACCESS read-create STATUS current DESCRIPTION "Represents the VSAN to be associated to the port on the local device on which the device represented by cdpvmLoginDev logs in." DEFVAL { 1 } ::= { cdpvmEntry 4 } cdpvmRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this conceptual row. Before setting this object to 'active', the cdpvmLoginDev object MUST be set to a valid value. Only cdpvmLoginDevVsan object can be modified when the value of this object is 'active'." ::= { cdpvmEntry 5 } cdpvmActivate OBJECT-TYPE SYNTAX CpsmDbActivate MAX-ACCESS read-write STATUS current DESCRIPTION "This object helps in activating the set of bindings in the cdpvmTable. Setting this object to 'activate(1)' will result in the valid bindings present in cdpvmTable being activated and copied to the cpdvmEnfTable. By default auto learn will be turned 'on' after activation. Before activation is attempted, it should be turned 'off'. Setting this object to 'forceActivate(3)', will result in forced activation, even if there are errors during activation and the activated bindings will be copied to the cdpvmEnfTable. Setting this object to 'deactivate(5)', will result in deactivation of currently activated valid bindings (if any). Currently active entries (if any), which would have been present in the cdpvmEnfTable, will be removed. Setting this object to 'activateWithAutoLearnOff(2)' and 'forceActivateWithAutoLearnOff(4)' is not allowed. Setting this object to 'noop(6)', results in no action. The value of this object when read is always 'noop(6)'. Activation will not be allowed if auto-learn is enabled." ::= { cdpvmConfiguration 3 } cdpvmActivateResult OBJECT-TYPE SYNTAX CpsmActivateResult MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the outcome of the activation." ::= { cdpvmConfiguration 4 } cdpvmAutoLearn OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "This object helps to 'learn' the configuration of devices logged into the local device on all its ports and the VSANs to which they are associated. This information will be populated in the the enforced binding table (cdpvmEnfTable). This mechanism of 'learning' the configuration of devices and their VSAN association over a period of time and populating the configuration is a convenience mechanism for users. If this object is set to 'true(1)' all subsequent logins and their VSAN association will be populated in the enforced binding database, provided it is not in conflict with existing enforced bindings. When this object is set to 'false(2)', the mechanism of learning is stopped. The learned entries will however be in the enforced binding database." ::= { cdpvmConfiguration 5 } cdpvmCopyEnfToConfig OBJECT-TYPE SYNTAX INTEGER { copy(1), noop(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "This object when set to 'copy(1)', results in the active (enforced) binding database to be copied on to the configuration binding database. Note that the learned entries are also copied. No action is taken if this object is set to 'noop(2)'. The value of this object when read is always 'noop'." ::= { cdpvmConfiguration 6 } -- Enforced Table cdpvmEnfTable OBJECT-TYPE SYNTAX SEQUENCE OF CdpvmEnfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains information on all currently enforced bindings on the local device. The enforced set of bindings is the set of valid bindings copied from the configuration binding database (cdpvmTable) at the time they were activated. These entries cannot be modified. The learnt entries are also a part of this table. Entries can get into this table or be deleted from this table only by means of explicit activation/deactivation. Note that this table will be empty when no valid bindings have been activated." ::= { cdpvmConfiguration 7 } cdpvmEnfEntry OBJECT-TYPE SYNTAX CdpvmEnfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (conceptual row) in this table." INDEX { cdpvmEnfIndex } ::= { cdpvmEnfTable 1 } CdpvmEnfEntry ::= SEQUENCE { cdpvmEnfIndex Unsigned32, cdpvmEnfLoginDevType CdpvmDevType, cdpvmEnfLoginDev FcNameId, cdpvmEnfLoginDevVsan VsanIndex, cdpvmEnfIsLearnt TruthValue } cdpvmEnfIndex OBJECT-TYPE SYNTAX Unsigned32 (1..16384) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The index of this entry." ::= { cdpvmEnfEntry 1 } cdpvmEnfLoginDevType OBJECT-TYPE SYNTAX CdpvmDevType MAX-ACCESS read-only STATUS current DESCRIPTION "Specifies the type of the corresponding instance of cdpvmEnfLoginDev." ::= { cdpvmEnfEntry 2 } cdpvmEnfLoginDev OBJECT-TYPE SYNTAX FcNameId MAX-ACCESS read-only STATUS current DESCRIPTION "This object represents the logging in device address. This object was copied from the cdpvmLoginDev object in the cdpvmTable at the time when the currently active bindings were activated." ::= { cdpvmEnfEntry 3 } cdpvmEnfLoginDevVsan OBJECT-TYPE SYNTAX VsanIndex MAX-ACCESS read-only STATUS current DESCRIPTION "This object represents the VSAN of the port on the local device thru' which the device represented by cdpvmEnfLoginDev logs in. This object was copied from the cdpvmLoginDevVsan object in the cdpvmTable at the time when the currently active bindings were activated" ::= { cdpvmEnfEntry 4 } cdpvmEnfIsLearnt OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates if this is a learnt entry or not. If the value of this object is 'true', then it is a learnt entry. If the value of this object is 'false', then it is not." ::= { cdpvmEnfEntry 5 } -- Dynamic Ports Table cdpvmDynPortsTable OBJECT-TYPE SYNTAX SEQUENCE OF CdpvmDynPortsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains the set of all ports that are operating with a dynamic VSAN on the local device." ::= { cdpvmConfiguration 8 } cdpvmDynPortsEntry OBJECT-TYPE SYNTAX CdpvmDynPortsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (conceptual row) in this table." INDEX { ifIndex } ::= { cdpvmDynPortsTable 1 } CdpvmDynPortsEntry ::= SEQUENCE { cdpvmDynPortVsan VsanIndex, cdpvmDynPortDevPwwn FcNameId, cdpvmDynPortDevNwwn FcNameId } cdpvmDynPortVsan OBJECT-TYPE SYNTAX VsanIndex MAX-ACCESS read-only STATUS current DESCRIPTION "The 'dynamic' VSAN of this port on the local device." ::= { cdpvmDynPortsEntry 1 } cdpvmDynPortDevPwwn OBJECT-TYPE SYNTAX FcNameId MAX-ACCESS read-only STATUS current DESCRIPTION "The pWWN of the device currently logged-in through this port on the local device." ::= { cdpvmDynPortsEntry 2 } cdpvmDynPortDevNwwn OBJECT-TYPE SYNTAX FcNameId MAX-ACCESS read-only STATUS current DESCRIPTION "The nWWN of the device currently logged-in thru' this port on the local device." ::= { cdpvmDynPortsEntry 3 } -- Diff Table cdpvmDiffConfig OBJECT-TYPE SYNTAX CpsmDiffDb MAX-ACCESS read-write STATUS current DESCRIPTION "The config database represented by cdpvmTable and the enforced database represented by cdpvmEnfTable can be compared to list out the differences. This object specifies the reference database for the comparison. This object when set to 'configDb(1)', compares the configuration database (cdpvmTable) with respect to the enforced database (cdpvmEnfTable). So, the enforced database will be the reference database and the results of comparison operation will be with respect to the enforced database. This object when set to 'activeDb(2)', compares the enforced database with respect to the configuration database. So, the configured database will be the reference database and the results of comparison operation will be with respect to the configuration database. No action will be taken if this object is set to 'noop(3)'. The value of this object when read is always 'noop(3)'." ::= { cdpvmConfiguration 9 } cdpvmDiffTable OBJECT-TYPE SYNTAX SEQUENCE OF CdpvmDiffEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains the result of the compare operation configured by means of the cdpvmDiffConfig object." ::= { cdpvmConfiguration 10 } cdpvmDiffEntry OBJECT-TYPE SYNTAX CdpvmDiffEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry (conceptual row) in this table." INDEX { cdpvmDiffIndex } ::= { cdpvmDiffTable 1 } CdpvmDiffEntry ::= SEQUENCE { cdpvmDiffIndex Unsigned32, cdpvmDiffReason CpsmDiffReason, cdpvmDiffLoginDevType CdpvmDevType, cdpvmDiffLoginDev FcNameId, cdpvmDiffLoginDevVsan VsanIndex } cdpvmDiffIndex OBJECT-TYPE SYNTAX Unsigned32 (1..16384) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The index of this entry." ::= { cdpvmDiffEntry 1 } cdpvmDiffReason OBJECT-TYPE SYNTAX CpsmDiffReason MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the reason for the difference between the databases being compared, for this entry." ::= { cdpvmDiffEntry 2 } cdpvmDiffLoginDevType OBJECT-TYPE SYNTAX CdpvmDevType MAX-ACCESS read-only STATUS current DESCRIPTION "Specifies the type of the corresponding instance of cdpvmDiffLoginDev object." ::= { cdpvmDiffEntry 3 } cdpvmDiffLoginDev OBJECT-TYPE SYNTAX FcNameId MAX-ACCESS read-only STATUS current DESCRIPTION "This object represents the logging-in device address. This object was copied from either the cdpvmLoginDev object in the cdpvmTable or from cdpvmEnfLoginDev object in the cdpvmEnfTable at the time when the comparison was done." ::= { cdpvmDiffEntry 4 } cdpvmDiffLoginDevVsan OBJECT-TYPE SYNTAX VsanIndex MAX-ACCESS read-only STATUS current DESCRIPTION "This object represents the VSAN of the port on the local device thru' which the device represented by the corresponding instance of cdpvmDiffLoginDev object, logged-in. It was copied from either the cdpvmLoginDevVsan object in the cdpvmTable or from cdpvmEnfLoginDevVsan object in the cdpvmEnfTable at the time when the comparison was done." ::= { cdpvmDiffEntry 5 } cdpvmClearAutoLearn OBJECT-TYPE SYNTAX INTEGER { clear(1), clearOnWwn(2), noop(3) } MAX-ACCESS read-write STATUS current DESCRIPTION "This object assists in clearing the auto-learnt entries. Setting this object to 'clear(1)' will result in all auto-learnt entries being cleared. Setting this object to 'clearOnWwn(2)' will result in a particular entry represented by cdpvmClearAutoLearnWwn object being cleared. Before setting this object to 'clearOnWwn(2)', the cpdvmClearAutoLearnWwn object should be set to the pWWN that is to be cleared. Setting this object to 'noop(3)', will result in no action being taken. The value of this object when read is always 'noop'." ::= { cdpvmConfiguration 11 } cdpvmClearAutoLearnWwn OBJECT-TYPE SYNTAX FcNameIdOrZero MAX-ACCESS read-write STATUS current DESCRIPTION "Represents the port WWN (pWWN) to be used for clearing its corresponding auto-learnt entry." DEFVAL { ''H } ::= { cdpvmConfiguration 12 } cdpvmActivationState OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the state of activation. If the value of this object is 'true', then an activation has been attempted as the most recent operation. If the value of this object is 'false', then an activation has not been attempted as the most recent operation." ::= { cdpvmConfiguration 13 } -- Conformance ciscoDpvmMIBCompliances OBJECT IDENTIFIER ::= { ciscoDpvmMIBConform 1 } ciscoDpvmMIBGroups OBJECT IDENTIFIER ::= { ciscoDpvmMIBConform 2 } ciscoDpvmMIBCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for entities which implement the Dynamic Port VSAN Membership Manager." MODULE MANDATORY-GROUPS { ciscoDpvmConfigGroup, ciscoDpvmEnforcedGroup } GROUP ciscoDpvmAutoLearnGroup DESCRIPTION "This group is mandatory only for implementations that support Auto Learning of bindings." GROUP ciscoDpvmDiffGroup DESCRIPTION "This group is mandatory only for implementations that support difference (compare) operations between the config and enforced databases." OBJECT cdpvmRowStatus SYNTAX INTEGER { active(1), createAndGo(4), destroy(6) } MIN-ACCESS read-create DESCRIPTION "Only three values 'createAndGo', 'destroy' and 'active' out of the six enumerated values need to be supported." ::= { ciscoDpvmMIBCompliances 1 } -- Units of Conformance ciscoDpvmConfigGroup OBJECT-GROUP OBJECTS { cdpvmNextAvailIndex, cdpvmLoginDevType, cdpvmLoginDev, cdpvmLoginDevVsan, cdpvmRowStatus, cdpvmActivate, cdpvmActivateResult, cdpvmCopyEnfToConfig, cdpvmDynPortVsan, cdpvmDynPortDevPwwn, cdpvmDynPortDevNwwn, cdpvmActivationState } STATUS current DESCRIPTION "A set of objects for configuration of DPVM bindings." ::= { ciscoDpvmMIBGroups 1 } ciscoDpvmEnforcedGroup OBJECT-GROUP OBJECTS { cdpvmEnfLoginDevType, cdpvmEnfLoginDev, cdpvmEnfLoginDevVsan, cdpvmEnfIsLearnt } STATUS current DESCRIPTION "A set of objects for displaying enforced DPVM bindings." ::= { ciscoDpvmMIBGroups 2 } ciscoDpvmAutoLearnGroup OBJECT-GROUP OBJECTS { cdpvmAutoLearn, cdpvmClearAutoLearn, cdpvmClearAutoLearnWwn } STATUS current DESCRIPTION "A set of object(s) for configuring auto-learn of DPVM bindings." ::= { ciscoDpvmMIBGroups 3 } ciscoDpvmDiffGroup OBJECT-GROUP OBJECTS { cdpvmDiffConfig, cdpvmDiffReason, cdpvmDiffLoginDevType, cdpvmDiffLoginDev, cdpvmDiffLoginDevVsan } STATUS current DESCRIPTION "A set of objects for configuring and displaying database compare operations." ::= { ciscoDpvmMIBGroups 4 } END