-- *********************************************************************
-- CISCO-FCS-MIB.my: Fabric Configuration Server Mib
--
-- September 2002, H K Vivek
--
-- Copyright (c) 2002 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *********************************************************************
 
CISCO-FCS-MIB  DEFINITIONS ::= BEGIN
IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE,
        NOTIFICATION-TYPE,
        Counter32, Integer32, Unsigned32   FROM    SNMPv2-SMI
        MODULE-COMPLIANCE, OBJECT-GROUP,
        NOTIFICATION-GROUP                 FROM    SNMPv2-CONF
        TruthValue, TestAndIncr,
        TimeStamp, RowStatus, 
        TEXTUAL-CONVENTION              FROM    SNMPv2-TC
        ciscoMgmt                       FROM    CISCO-SMI
        SnmpAdminString                 FROM    SNMP-FRAMEWORK-MIB
        ListIndex, ListIndexOrZero,
        TimeIntervalSec                 FROM    CISCO-TC
        FcNameId, FcAddressId,
        DomainIdOrZero,
        FcPortTypes, FcPortTxTypes,
        FcPortModuleTypes, VsanIndex    FROM    CISCO-ST-TC
        vsanIndex                       FROM    CISCO-VSAN-MIB
        FcGs3RejectReasonCode           FROM    CISCO-NS-MIB
        FcList                          FROM    CISCO-ZS-MIB;


ciscoFcsMIB   MODULE-IDENTITY
        LAST-UPDATED  "200402190000Z"
        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 a Fabric 
                 Configuration Server (FCS). An FCS is  defined 
                 by the FC-GS3 standard. This MIB enables managers 
                 to configure and monitor FCS parameters."
        REVISION  "200402190000Z"
        DESCRIPTION
                "Added notification fcsMgmtAddrChangeNotify."
        REVISION  "200308200000Z"
        DESCRIPTION
                "Changed the max lengths of fcsPlatformName,
                 fcsIeLogicalName and fcsMgmtAddr to 255 from
                 256. Changed the min length of fcsPlatformName
                 from 2 to 1."
        REVISION  "200212180000Z"
        DESCRIPTION
                "Changed the ranges of fcsPortNumber and 
                 fcsPlatformNumber objects, so that they
                 start from 0."
        REVISION  "200210070000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { ciscoMgmt 297 }


ciscoFcsMIBObjects OBJECT IDENTIFIER ::= { ciscoFcsMIB 1 }
fcsMIBConformance  OBJECT IDENTIFIER ::= { ciscoFcsMIB 2 }
fcsConfiguration   OBJECT IDENTIFIER ::= { ciscoFcsMIBObjects 1 }
fcsStats           OBJECT IDENTIFIER ::= { ciscoFcsMIBObjects 2 }
fcsInformation     OBJECT IDENTIFIER ::= { ciscoFcsMIBObjects 3 }
fcsNotification    OBJECT IDENTIFIER ::= { ciscoFcsMIBObjects 4 }
fcsNotifications   OBJECT IDENTIFIER ::= { fcsNotification 0 }

CreatedBy ::= TEXTUAL-CONVENTION
     STATUS   current
     DESCRIPTION
             "When an object with this syntax is specified as
              a columnar object, then each instance of the
              object indicates how the row which contains that
              instance was created.

              createdByMgmt(1) -  indicates that the
                                  entry was created via SNMP. 
              learnedviaGS3(2) -  indicates that the entry was 
                                  configured by GS-3."
     SYNTAX     INTEGER {
                   createdByMgmt(1), 
                   learnedviaGS3(2)
                }

FcIeType ::= TEXTUAL-CONVENTION
     STATUS   current
     DESCRIPTION
             "The type of Interconnect Element (IE).
              unknown(1) - unknown IE.
              other(2) - other type of IE.
              switch(3) - IE is a switch.
              hub(4) - IE is a hub.
              bridge(5) - IE is a bridge."
     SYNTAX  INTEGER {
                unknown(1), 
                other(2), 
                switch(3),
                hub(4),
                bridge(5)
             }

FcPortState  ::= TEXTUAL-CONVENTION
     STATUS   current
     DESCRIPTION
             "The state of a port.
              unknown(1) - unknown state.
              online(2) - port is in online state.
              offline(3) - port is in offline state.
              testing(4) - port is in testing state.
              fault(5) - port is faulty.
              other(6) - other state."
     SYNTAX     INTEGER {
                   unknown(1), 
                   online(2), 
                   offline(3),
                   testing(4),
                   fault(5),
                   other(6) 
                }

FcPlatformType ::= TEXTUAL-CONVENTION
     STATUS   current
     DESCRIPTION
             "The type of platform.
              unknown(1) - unknown type.
              other(2) - other than the listed types.
              gateway(3) - platform is a gateway.
              converter(4) - platform is a converter.
              hostBusAdapter(5) - platform is a Host Bus
                                  Adapter (HBA).
              swProxyAgent(6) - platform is a s/w proxy
                                agent.
              storageDevice(7) - platform is a Storage device.
              host(8) - platform is a host.
              storageSubSys(9) - platform is a storage sub-system
              module(10) - platform is a module.
              swDriver(11) - platform is a s/w driver.
              storageAccessDev(12) - platform is a storage access
                                     device."
     SYNTAX     INTEGER {
                         unknown(1),
                         other(2),
                         gateway(3),
                         converter(4),
                         hostBusAdapter(5),
                         swProxyAgent(6),
                         storageDevice(7),
                         host(8),
                         storageSubSys(9),
                         module(10),
                         swDriver(11),
                         storageAccessDev(12)
                }

FcFcsRejReasonExplanation ::= TEXTUAL-CONVENTION
      STATUS   current
      DESCRIPTION
              "The reject reason code explanation.
               noAdditionalExplanation(1) - no additional expl.
               invNameIdForIEOrPort(2) - the format of IE or
                                         port name is invalid.
               ieListNotAvailable(3) - IE list is not available.
               ieTypeNotAvailable(4) - IE type is not available.
               domainIdNotAvailable(5) - Domain ID is not 
                                         available.
               mgmtIdNotAvailable(6) - mgmt ID is not available.
               fabNameNotAvailable(7) - fabric name is not
                                        available.
               ielogNameNotAvailable(8) - IE logical name is not
                                          available.
               mgmtAddrListNotAvailable(9) - mgmt address list is
                                             not available.
               ieInfoListNotAvailable(10) - IE info list is not
                                            available.
               portListNotAvailable(11) - port list is not
                                          available.
               portTypeNotAvailable(12) - port type is not
                                          available.
               phyPortNumNotAvailable(13) - physical port number is
                                            not available.
               attPortNameListNotAvailable(14) - attached port name
                                                 list is not
                                                 available.
               portStateNotAvailable(15) - port state is not 
                                           available.
               unableToRegIELogName(16) - not able to register IE
                                          logical name.
               platformNameNoExist(17) - platform name does not 
                                         exist.
               platformNameAlreadyExists(18) - platform name already
                                               exists.
               platformNodeNameNoExists(19) - platform node name does
                                              not exist.
               platformNodeNameAlreadyExists(20) - platform node name
                                                   already exists."
      SYNTAX  INTEGER {
                 noAdditionalExplanation(1),
                 invNameIdForIEOrPort(2),
                 ieListNotAvailable(3),
                 ieTypeNotAvailable(4),
                 domainIdNotAvailable(5),
                 mgmtIdNotAvailable(6),
                 fabNameNotAvailable(7),
                 ielogNameNotAvailable(8),
                 mgmtAddrListNotAvailable(9),
                 ieInfoListNotAvailable(10),
                 portListNotAvailable(11),
                 portTypeNotAvailable(12),                        
                 phyPortNumNotAvailable(13),
                 attPortNameListNotAvailable(14),
                 portStateNotAvailable(15),
                 unableToRegIELogName(16),
                 platformNameNoExist(17),
                 platformNameAlreadyExists(18),
                 platformNodeNameNoExists(19),
                 platformNodeNameAlreadyExists(20)
              }


fcsVsanDiscoverySpinLock OBJECT-TYPE
        SYNTAX       TestAndIncr
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
                "This object is used to facilitate modification
                 of fcsVsanDiscoveryList2k, fcsVsanDiscovery-
                 List4k, fcsVsanDiscoveryName  and 
                 fcsStartDiscovery objects by multiple managers. 
                 The procedure for modifying the above four objects
                 is as follows:

                 1. Determine new values for fcsVsanDiscoveryList2k,
                    fcsVsanDiscoveryList4k and fcsVsanDiscoveryName.

                 2. Retrieve the value of fcsVsanDiscoverySpinLock.

                 3. Set the value of fcsVsanDiscoverySpinLock to the
                    retrieved value, and (in the same PDU) the value 
                    of fcsVsanDiscoveryList2k to the new value.  
                    If the set fails for the fcsVsanDiscoverySpinLock 
                    object, go back to step 2.
                 
                 4. Set the value of fcsVsanDiscoverySpinLock to the
                    retrieved value incremented by one, and (in the 
                    same PDU) the value of fcsVsanDiscoveryList4k
                    to its new value. If the set fails for 
                    fcsVsanDiscoverySpinLock, go back to step 2.

                 5. Set the value of fcsVsanDiscoverySpinLock to the
                    retrieved value incremented by two, and (in the 
                    same PDU) the value of fcsStartDiscovery to
                    'startDiscovery'. If the set fails for
                    fcsVsanDiscoverySpinLock, go back to step 2.

                 6. Set the value of fcsVsanDiscoverySpinLock to the
                    retrieved value incremented by three, and (in the
                    same PDU) the value of fcsVsanDiscoveryName to 
                    its new value. If the set fails for 
                    fcsVsanDiscoverySpinLock, go back to step 2.

                    Note that if it's possible to include 
                    fcsVsanDiscoveryList4k, fcsStartDiscovery,
                    and/or fcsVsanDiscoveryName in the (Set Request)
                    PDU of an earlier step, then step 4, 5 and/or 6,
                    respectively , can be eliminated."
        ::= { fcsConfiguration 1 }

fcsVsanDiscoveryName OBJECT-TYPE
        SYNTAX       SnmpAdminString (SIZE (0..32))
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
                "The name of the discovery triggered by a manager.
                 This object is sent along with the 
                 fcsDiscoveryCompleteNotify notification.

                 This object cannot be modified when the discovery
                 status is 'inProgress' on the selected set of
                 VSANs as indicated by the fcsDiscoveryStatus
                 object in the fcsDiscoveryStatusTable."
        ::= { fcsConfiguration 2 }

fcsVsanDiscoveryList2k  OBJECT-TYPE
        SYNTAX       FcList
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
                "A bitmap which represents VSANs starting from 
                 VSAN id 1 to VSAN id 2048. Discovery will be
                 carried out on all those VSANs for which the
                 corresponding bits are set to 1 in this object.
                 Note that if multiple managers set this object
                 one after the other, the discovery is carried
                 out on the union of the multiple requests. When
                 read, the value of this object is the union of
                 the in-progress discovery requests."
        ::= { fcsConfiguration 3 }

fcsVsanDiscoveryList4k  OBJECT-TYPE
        SYNTAX       FcList
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
                "A bitmap which represents VSANs starting from 
                 VSAN id 2049 to VSAN id 4096. Discovery will be
                 carried out on all those VSANs for which the 
                 corresponding bits are set to 1 in this object.
                 Note that if multiple managers set this object
                 one after the other, the discovery is carried
                 out on the union of the multiple requests. When
                 read, the value of this object is the union of
                 the in-progress discovery requests."
        ::= { fcsConfiguration 4 }


fcsStartDiscovery  OBJECT-TYPE
        SYNTAX       INTEGER {
                        startDiscovery(1), -- start the discovery
                        noOp(2) -- no operation
                     }
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
                "This object specifies whether a discovery cycle
                 should be started by the Fabric Configuration
                 Server. If this object is set to 'startDiscovery', 
                 then the discovery is started by the Fabric 
                 Configuration Server on those VSANs that have been
                 specified by the fcsVsanDiscoveryList objects. 
                 No action is taken if this object is set to 'noOp'.
                 The value of this object when read is always 
                 'noOp'."
        ::= { fcsConfiguration 5 }

fcsDiscoveryStatusTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF FcsDiscoveryStatusEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "This table contains the status of the discovery
                 for all VSANs."
        ::= { fcsConfiguration 6 }

fcsDiscoveryStatusEntry OBJECT-TYPE
        SYNTAX       FcsDiscoveryStatusEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "An entry (conceptual row) in this table.
                 The discovery status for a particular VSAN."
        INDEX { vsanIndex }
        ::= { fcsDiscoveryStatusTable 1 }

FcsDiscoveryStatusEntry ::= SEQUENCE {
        fcsDiscoveryStatus              INTEGER,
        fcsDiscoveryCompleteTime        TimeStamp
}


fcsDiscoveryStatus  OBJECT-TYPE
        SYNTAX       INTEGER {
                        inProgress(1), -- discovery in progress
                        completed(2), -- discovery is complete
                        databaseInvalid(3) -- database is invalid
                     }
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The status of the discovery on the local switch.
                 Initially when the switch comes up, this object 
                 will be set to 'databaseInvalid' state on all 
                 VSANs. This indicates that a discovery needs to 
                 be done. 
                 If the manager sets the fcsStartDiscovery object to 
                 'startDiscovery' for this VSAN, then the discovery 
                 will be triggered on. 
                 The state of this object will be set to 'inProgress'
                 for this VSAN during the discovery. Once the 
                 discovery is completed on this VSAN, this object 
                 will be set to 'completed'. 
                 After the discovery is completed for the specified 
                 list of VSANs, the data is cached for an interval 
                 of time specified by fcsVsanDiscoveryTimeOut object. 
                 Once this interval of time expires, the data is lost 
                 and this object will be set to 'databaseInvalid' 
                 state for the specified list of VSANs."
        ::= { fcsDiscoveryStatusEntry 1 }

fcsDiscoveryCompleteTime  OBJECT-TYPE
        SYNTAX       TimeStamp
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "This object contains the value of sysUpTime when
                 the last discovery was completed on this VSAN. 
                 This object will contain the value of zero before 
                 the first discovery on this VSAN."
        ::= { fcsDiscoveryStatusEntry 2 }

fcsVsanDiscoveryTimeOut OBJECT-TYPE
        SYNTAX       TimeIntervalSec (300..1800)
        UNITS        "seconds"
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
                "The minimum interval of time for which the 
                 discovered data on a VSAN is cached by the 
                 Fabric Configuration Server."
        DEFVAL { 900 }
        ::= { fcsConfiguration 7 }

fcsDiscoveryInvalidateCache2k OBJECT-TYPE
        SYNTAX       FcList
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
                "A bitmap which represents VSANs from 1 to 2048.
                 The discovered cache will be invalidated on those
                 VSANs for which the corresponding bits are set to
                 1 in this object. If the bit corresponding to a 
                 particular VSAN is set to 1 and if the value of
                 fcsDiscoveryStatus for that VSAN is 'completed',
                 then the discovery cache on that VSAN will be
                 invalidated and the fcsDiscoveryStatus object for
                 that VSAN will be set to 'databaseInvalid'."
        ::= { fcsConfiguration 8 }

fcsDiscoveryInvalidateCache4k OBJECT-TYPE
        SYNTAX       FcList
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
                "A bitmap which represents VSANs from 2049 to 4096.
                 The discovered cache will be invalidated on those
                 VSANs for which the corresponding bits are set to
                 1 in this object. If the bit corresponding to a 
                 particular VSAN is set to 1 and if the value of
                 fcsDiscoveryStatus for that VSAN is 'completed',
                 then the discovery cache on that VSAN will be
                 invalidated and the fcsDiscoveryStatus object for
                 that VSAN will be set to 'databaseInvalid'."
        ::= { fcsConfiguration 9 }


fcsIeNumber OBJECT-TYPE
        SYNTAX       Integer32 (0..489472)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The number of entries currently present in the 
                 fcsIeTable."
        ::= { fcsConfiguration 10 }

fcsIeTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF FcsIeEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "A table of Interconnect Elements.
                 Interconnect Elements (IEs) are switches, hubs,
                 bridges etc.
                 By default, the Fabric Configuration Server will
                 maintain detailed information pertaining only to 
                 the local switch. As far as remote topology is
                 concerned, only the IE name, type and domain-id 
                 information will be maintained. If a discovery 
                 cycle is triggered on a set of VSANs, this table 
                 along with the Port and Platform tables will be 
                 populated with the discovered information. The 
                 discovered data will be retained in this table for 
                 at least fcsVsanDiscoveryTimeOut seconds after the 
                 completion of its discovery or till the discovered 
                 data is invalidated by setting the appropriate 
                 bits of fcsDiscoveryInvalidateCache2k/4k."
        ::= { fcsConfiguration 11 }

fcsIeEntry OBJECT-TYPE
        SYNTAX       FcsIeEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "An entry (coneptual row) in this table.
                 It gives information on an Interconnect
                 Element."
        INDEX { vsanIndex, fcsIeName }
        ::= { fcsIeTable 1 }

FcsIeEntry ::= SEQUENCE {
        fcsIeName                FcNameId,
        fcsIeType                FcIeType,
        fcsIeDomainId            DomainIdOrZero,
        fcsIeMgmtId              FcAddressId,
        fcsIeFabricName          FcNameId,
        fcsIeLogicalName         OCTET STRING,
        fcsIeMgmtAddrListIndex   ListIndexOrZero,
        fcsIeInfoList            OCTET STRING,
        fcsIePortListIndex       ListIndexOrZero
}

fcsIeName  OBJECT-TYPE
        SYNTAX       FcNameId
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "The WWN of an Interconnect Element. This object
                 uniquely identifies an Interconnect Element on a 
                 VSAN. If the IE is a switch, then this object
                 is the Node WWN of the switch."
        ::= { fcsIeEntry 1 }

fcsIeType  OBJECT-TYPE
        SYNTAX       FcIeType
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The type of this Interconnect Element."
        ::= { fcsIeEntry 2 }

fcsIeDomainId  OBJECT-TYPE
        SYNTAX       DomainIdOrZero
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The Domain Id of this Interconnect Element.
                 If the Domain Id has not been configured, 
                 then this object will have the value of zero."
        ::= { fcsIeEntry 3 }

fcsIeMgmtId  OBJECT-TYPE
        SYNTAX       FcAddressId
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The management identifer of this Interconnect
                 Element. If the Interconnect Element is a switch,
                 then this object will be the Domain Controller
                 identifier of the switch. If the value of this 
                 object is unknown to the local system, then it 
                 will contain the null value x'00 00 00'."
        DEFVAL { '000000'h }
        ::= { fcsIeEntry 4 }

fcsIeFabricName  OBJECT-TYPE
        SYNTAX       FcNameId
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The fabric name of this Interconnect Element.
                 If the value of this object is unknown to the 
                 local system, then it will contain the null 
                 value x'00 00 00 00 00 00 00 00'."
        DEFVAL { '0000000000000000'h }
        ::= { fcsIeEntry 5 }

fcsIeLogicalName  OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE (0..255))
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The logical name of this Interconnect Element.
                 If the value of this object is unknown to the
                 local system, then it will contain the zero 
                 length string."
        ::= { fcsIeEntry 6 }

fcsIeMgmtAddrListIndex  OBJECT-TYPE
        SYNTAX       ListIndexOrZero
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The index of the management address list
                 corresponding to this Interconnect Element. This
                 object is an index into the fcsMgmtAddrListTable.
                 Zero or more of the management address objects may
                 be associated with an Interconnect Element object."
        ::= { fcsIeEntry 7 }

fcsIeInfoList  OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE (0..256))
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The information list corresponding to this 
                 Interconnect Element. This object contains
                 multiple substrings: the vendor name, 
                 model name/number, release code and any vendor 
                 specific information. Each substring is 
                 terminated with a null x'00'."
        REFERENCE
                "ANSI NCITS xxx-200x, Fibre Channel - Generic
                 Services 3 (FC-GS-3) T11/Project 1356D/Rev 7.01
                 Section 6.1.2.1.8"
        ::= { fcsIeEntry 8 }

fcsIePortListIndex  OBJECT-TYPE
        SYNTAX       ListIndexOrZero
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The index of the port list corresponding to this 
                 Interconnect Element. This object is an index into 
                 the fcsPortListTable."
        ::= { fcsIeEntry 9 }




fcsMgmtAddrListTable  OBJECT-TYPE
        SYNTAX       SEQUENCE OF FcsMgmtAddrListEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "This table contains the set of management
                 address lists currently referenced by any
                 instance of the fcsIeMgmtAddrListIndex or
                 fcsPlatformMgmtAddrListIndex objects."
        ::= { fcsConfiguration 12 }

fcsMgmtAddrListEntry  OBJECT-TYPE
        SYNTAX       FcsMgmtAddrListEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "An entry (conceptual row) in this table.
                 A management address is represented by
                 fcsMgmtAddrIndex. All management addresses which
                 belong to the same list have a common 
                 fcsMgmtAddrListIndex."
        INDEX { fcsMgmtAddrListIndex, fcsMgmtAddrIndex }
        ::= { fcsMgmtAddrListTable 1 }

FcsMgmtAddrListEntry ::= SEQUENCE {
        fcsMgmtAddrListIndex        ListIndex,
        fcsMgmtAddrIndex            Unsigned32,
        fcsMgmtAddr                 OCTET STRING,
        fcsMgmtAddrConfigSource     CreatedBy,
        fcsMgmtAddrRowStatus        RowStatus
}

fcsMgmtAddrListIndex  OBJECT-TYPE
        SYNTAX       ListIndex (1..2147483647)
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "The index of the management address list."
        ::= { fcsMgmtAddrListEntry 1 }

fcsMgmtAddrIndex OBJECT-TYPE
        SYNTAX       Unsigned32 (1..2147483647)
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "The index of a management address."
        ::= { fcsMgmtAddrListEntry 2 }

fcsMgmtAddr  OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE (0..255))
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
                "The management address corresponding to this entry.
                 The format of this object may be based on the 
                 format of the Uniform Resource Locator (URL).
                 For example, SNMP - snmp://ipaddress[:port#].

                 This object MUST be set to a valid value before or
                 concurrently with setting the value of the
                 corresponding instance of fcsMgmtAddrRowStatus to
                 'active'."
        REFERENCE
                "ANSI NCITS xxx-200x, Fibre Channel - Generic
                 Services 3 (FC-GS-3) T11/Project 1356D/Rev 7.01
                 Section 6.1.2.1.7"
        ::= { fcsMgmtAddrListEntry 3 }

fcsMgmtAddrConfigSource  OBJECT-TYPE
        SYNTAX       CreatedBy
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The source of configuration of this entry.
                 Note that an entry which is configured via
                 GS3 cannot be deleted through SNMP."
        ::= { fcsMgmtAddrListEntry 4 }


fcsMgmtAddrRowStatus  OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
                "The status of this conceptual row."
        ::= { fcsMgmtAddrListEntry 5 }




fcsPortListTable  OBJECT-TYPE
        SYNTAX       SEQUENCE OF FcsPortListEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "This table contains all the lists of ports that
                 are associated with Interconnect Elements contained
                 in fcsIeTable."
        ::= { fcsConfiguration 13 }

fcsPortListEntry  OBJECT-TYPE
        SYNTAX       FcsPortListEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "An entry (conceptual row) in this table.
                 A port is represented by fcsPortName. All the
                 ports that belong to the same list have the same
                 fcsPortListIndex."
        INDEX { fcsPortListIndex, fcsPortName }
        ::= { fcsPortListTable 1 }
 
FcsPortListEntry ::= SEQUENCE {
        fcsPortListIndex        ListIndex
}

fcsPortListIndex  OBJECT-TYPE
        SYNTAX       ListIndex (1..2147483647)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The index of the port list."
        ::= { fcsPortListEntry 1 }
                


fcsPortNumber OBJECT-TYPE
        SYNTAX       Integer32 (0..2147483647)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The number of entries currently present in the
                 fcsPortTable."
        ::= { fcsConfiguration 14 }

fcsPortTable  OBJECT-TYPE
        SYNTAX       SEQUENCE OF FcsPortEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "This table contains information of all the ports.
                 These ports are grouped into lists by the 
                 fcsPortListTable."
        ::= { fcsConfiguration 15 }

fcsPortEntry  OBJECT-TYPE
        SYNTAX       FcsPortEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "An entry (conceptual row) in this table."
        INDEX { vsanIndex, fcsPortName }
        ::= { fcsPortTable 1 }

FcsPortEntry ::= SEQUENCE {
        fcsPortName                    FcNameId,
        fcsPortType                    FcPortTypes,
        fcsPortTXType                  FcPortTxTypes,
        fcsPortModuleType              FcPortModuleTypes,
        fcsPortPhyPortNum              Integer32,
        fcsPortAttachPortNameIndex     ListIndexOrZero,
        fcsPortState                   FcPortState
}

fcsPortName  OBJECT-TYPE
        SYNTAX       FcNameId
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "The WWN of the  port for which this row contains
                 information."
        ::= { fcsPortEntry 1 }

fcsPortType  OBJECT-TYPE
        SYNTAX       FcPortTypes
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The type of this port.
                 If it is a trunk port, the type of the port will 
                 be tePort. This is however not a standard port 
                 type. When information regarding such a port is 
                 sent using GS-3, it is represented in the GS-3 
                 message and therefore in this table as an 
                 E_Port."
        ::= { fcsPortEntry 2 }

fcsPortTXType  OBJECT-TYPE
        SYNTAX       FcPortTxTypes
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The TX type of this port."
        ::= { fcsPortEntry 3 }

fcsPortModuleType  OBJECT-TYPE
        SYNTAX       FcPortModuleTypes    
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The module type of this port."
        ::= { fcsPortEntry 4 }

fcsPortPhyPortNum  OBJECT-TYPE
        SYNTAX       Integer32 (1..2147483647)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The physical number corresponding to this port 
                 entry."
        ::= { fcsPortEntry 5 }

fcsPortAttachPortNameIndex  OBJECT-TYPE
        SYNTAX       ListIndexOrZero
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The index of the attached port name list
                 corresponding to this port entry. This object
                 is an index into the fcsAttachPortNameListTable."
        ::= { fcsPortEntry 6 }

fcsPortState  OBJECT-TYPE
        SYNTAX       FcPortState
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The state of this port."
        ::= { fcsPortEntry 7 }



fcsAttachPortNameListTable  OBJECT-TYPE
        SYNTAX       SEQUENCE OF FcsAttachPortNameListEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "This table contains all the lists of attach port
                 names."
        REFERENCE
                "ANSI NCITS xxx-200x, Fibre Channel - Generic
                 Services 3 (FC-GS-3) T11/Project 1356D/Rev 7.01
                 Section 6.1.2.2.6"
        ::= { fcsConfiguration 16 }

fcsAttachPortNameListEntry  OBJECT-TYPE
        SYNTAX       FcsAttachPortNameListEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "An entry (conceptual row) in this table.
                 An Attached port name is represented by
                 fcsAttachPortName. All the attach port names
                 that belong to the same list have a common
                 fcsAttachPortNameListIndex."
        INDEX { fcsAttachPortNameListIndex, fcsAttachPortName }
        ::= { fcsAttachPortNameListTable 1 }

FcsAttachPortNameListEntry ::= SEQUENCE {
        fcsAttachPortNameListIndex        ListIndex,
        fcsAttachPortName                 OCTET STRING
}

fcsAttachPortNameListIndex  OBJECT-TYPE
        SYNTAX       ListIndex(1..2147483647)
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "The index of the attach port name list."
        ::= { fcsAttachPortNameListEntry 1 }

fcsAttachPortName  OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE (12))
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The attached port name corresponding to this entry.
                 Zero or more of these names may be associated with 
                 a port object.
                 The first 8 bytes of this object contain the WWN of
                 the port followed by 2 reserved bytes. Following
                 this is one byte of Port flags and one byte of
                 Port type. See FC-GS3 for more details."
        REFERENCE
                "ANSI NCITS xxx-200x, Fibre Channel - Generic
                 Services 3 (FC-GS-3) T11/Project 1356D/Rev 7.01
                 Section 6.1.2.2.6"
        ::= { fcsAttachPortNameListEntry 2 }



 
fcsPlatformNumber OBJECT-TYPE
        SYNTAX       Integer32 (0..2147483647)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The number of entries currently present in the
                 fcsPlatformTable."
        ::= { fcsConfiguration 17 }

fcsPlatformTable  OBJECT-TYPE
        SYNTAX       SEQUENCE OF FcsPlatformEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "This table contains information on platforms.
                 By default, this table only contains information
                 pertaining to the local switch. If a discovery
                 is triggered, this table will contain all the
                 information that was obtained from the discovery
                 process. The information gathered from the 
                 discovery process shall be retained in this table
                 for atleast fcsVsanDiscoveryTimeOut seconds after
                 the completion of its discovery or until the
                 discovered cache is invalidated by setting the
                 appropriate bits of 
                 fcsDiscoveryInvalidateCache2k/4k."
        REFERENCE
                "ANSI NCITS xxx-200x, Fibre Channel - Generic 
                 Services 3 (FC-GS-3) T11/Project 1356D/Rev 7.01 
                 Section 6.1.2.3"
        ::= { fcsConfiguration 18 }

fcsPlatformEntry  OBJECT-TYPE
        SYNTAX       FcsPlatformEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "An entry (conceptual row) in this table.
                 A platform is uniquely represented by
                 fcsPlatformIndex. There could be multiple
                 platforms on a VSAN.
                 A platform can contain multiple nodes. The
                 node lists need to be created in the
                 fcsNodeNameListTable. The 
                 fcsPlatformNodeNameListIndex object in this 
                 table points to the desired node list in the 
                 fcsNodeNameListTable.
                 Similarly, the management addresses corresponding
                 to the platform need to be created in the
                 fcsMgmtAddrListTable. The 
                 fcsPlatformMgmtAddrListIndex object in this table
                 points to the desired management address list
                 in the fcsMgmtAddrListTable.
                 Once a platform has been created, it can optionally
                 be validated on a fabric-wide basis by setting
                 the appropriate instance of fcsPlatformValidation
                 object to 'validate'."
        INDEX { vsanIndex, fcsPlatformIndex }
        ::= { fcsPlatformTable 1 }

FcsPlatformEntry ::= SEQUENCE {
        fcsPlatformIndex                 Unsigned32,
        fcsPlatformName                  OCTET STRING,
        fcsPlatformType                  FcPlatformType,
        fcsPlatformNodeNameListIndex     ListIndexOrZero,
        fcsPlatformMgmtAddrListIndex     ListIndexOrZero,
        fcsPlatformConfigSource          CreatedBy,
        fcsPlatformValidation            INTEGER,
        fcsPlatformValidationResult      INTEGER,
        fcsPlatformRowStatus             RowStatus
}

fcsPlatformIndex OBJECT-TYPE
        SYNTAX       Unsigned32 (1..2147483647)
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "The index of this platform."
        ::= { fcsPlatformEntry 1 }

fcsPlatformName  OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE (1..255))
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
                "The name of this platform.

                 The name should be unique within a VSAN. This
                 object cannot be modified while the value of
                 the corresponding instance of 
                 fcsPlatformRowStatus is 'active'.

                 This object MUST be set before or concurrently
                 with setting the corresponding instance of
                 fcsPlatformRowStatus to 'active'."
        REFERENCE
                "ANSI NCITS xxx-200x, Fibre Channel - Generic
                 Services 3 (FC-GS-3) T11/Project 1356D/Rev 7.01
                 Section 6.1.2.3.1"
        ::= { fcsPlatformEntry 2 }

fcsPlatformType  OBJECT-TYPE
        SYNTAX       FcPlatformType
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
                "The type of this platform."
        ::= { fcsPlatformEntry 3 }

fcsPlatformNodeNameListIndex  OBJECT-TYPE
        SYNTAX       ListIndexOrZero
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
                "The index of the node name list corresponding to 
                 this platform entry. This object is an index into 
                 the fcsNodeNameListTable.

                 The list of nodes that a platform contains should
                 be unique within a VSAN.

                 If this entry is configured via SNMP as indicated 
                 by the corresponding instance of fcsPlatformConfig-
                 Source object, then this object should only point
                 to entries in fcsNodeNameListTable that have been
                 created via SNMP. Similarly, if this entry is
                 configured via GS-3, then it can only point to
                 entries configured via GS-3 in the 
                 fcsNodeNameListTable."
        ::= { fcsPlatformEntry 4 }

fcsPlatformMgmtAddrListIndex  OBJECT-TYPE
        SYNTAX       ListIndexOrZero
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
                "The index of the management address list
                 corresponding to this Platform. This object 
                 is an index into the fcsMgmtAddrListTable.
                 Zero or more of the management address objects may
                 be associated with a Platform object.

                 If this entry is configured via SNMP as indicated 
                 by the corresponding instance of fcsPlatformConfig-
                 Source object, then this object should only point
                 to entries in fcsMgmtAddrListTable that have been
                 created via SNMP. Similarly, if this entry is
                 configured via GS-3, then it can only point to
                 entries configured via GS-3 in the 
                 fcsMgmtAddrListTable."
        ::= { fcsPlatformEntry 5 }

fcsPlatformConfigSource  OBJECT-TYPE
        SYNTAX       CreatedBy
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The source of configuration of this entry.
                 Note that an entry which is configured via
                 GS3 cannot be deleted through SNMP."
        ::= { fcsPlatformEntry 6 }

fcsPlatformValidation OBJECT-TYPE
        SYNTAX       INTEGER {
                        validate(1), -- perform validation
                        noop(2) -- no operation
                     }   
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
                "This object specifies whether the validation for
                 the platform name and its constituent nodes 
                 should be done on a fabric-wide basis.

                 The outcome of this validation will be present 
                 in the corresponding instance of
                 fcsPlatformValidationResult.

                 No action is taken if this object is set to
                 'noop'.

                 The value of this object when read is always
                 'noop'."
        ::= { fcsPlatformEntry 7 }

fcsPlatformValidationResult OBJECT-TYPE
        SYNTAX       INTEGER {
                        success(1), -- validation succeeded
                        inProgress(2), -- validation in progress
                        nameInvalid(3), -- Platform Name invalid
                        nodeInvalid(4), -- Platform Node invalid
                        failure(5) -- general failure
                     }
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The result of the fabric-wide validation of
                 this platform. 

                 If the name of the platform is not unique
                 fabric-wide on this VSAN, then this object
                 will contain the value 'nameInvalid'.

                 If the list of nodes present in the platform
                 is not unique, then this object will contain
                 the value 'nodeInvalid'.

                 If there is any other failure, this object will
                 contain the value 'failure'.

                 None of the configurable objects can be modified
                 when the value of this object is 'inProgress'."
        ::= { fcsPlatformEntry 8 }

fcsPlatformRowStatus  OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
                "The status of this conceptual row."
        ::= { fcsPlatformEntry 9 }


fcsNodeNameListTable  OBJECT-TYPE
        SYNTAX       SEQUENCE OF FcsNodeNameListEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "This table contains all the lists of nodes."
        ::= { fcsConfiguration 19 }

fcsNodeNameListEntry  OBJECT-TYPE
        SYNTAX       FcsNodeNameListEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "An entry (conceptual row) in this table.
                 Each node is represented uniquely by
                 fcsNodeName. All nodes that belong to the
                 same list have a common fcsNodeNameListIndex."
        INDEX { fcsNodeNameListIndex, fcsNodeName }
        ::= { fcsNodeNameListTable 1 }

FcsNodeNameListEntry ::= SEQUENCE {
        fcsNodeNameListIndex       ListIndex,
        fcsNodeName                FcNameId,
        fcsNodeNameConfigSource    CreatedBy,
        fcsNodeNameRowStatus       RowStatus
}

fcsNodeNameListIndex  OBJECT-TYPE
        SYNTAX       ListIndex (1..2147483647)
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "The index of the node name list."
        ::= { fcsNodeNameListEntry 1 }

fcsNodeName  OBJECT-TYPE
        SYNTAX       FcNameId
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "The name of this node entry."
        ::= { fcsNodeNameListEntry 2 }

fcsNodeNameConfigSource  OBJECT-TYPE
        SYNTAX       CreatedBy
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The source of configuration of this entry.
                 Note that an entry configured via GS-3
                 cannot be deleted through SNMP."
        ::= { fcsNodeNameListEntry 3 }


fcsNodeNameRowStatus  OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
                "The status of this conceptual row."
        ::= { fcsNodeNameListEntry 4 }



fcsTotalRejects OBJECT-TYPE
        SYNTAX        Counter32
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "The total number of requests rejected by the
                local switch across all VSANs."
        ::= { fcsStats 1 }

fcsStatsTable  OBJECT-TYPE
        SYNTAX       SEQUENCE OF FcsStatsEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "This table contains all the statistics related
                 to the Fabric Configuration Server."
        ::= { fcsStats 2 }

fcsStatsEntry  OBJECT-TYPE
        SYNTAX       FcsStatsEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
                "An entry (conceptual row) in this table.
                 Some statistics for a particular VSAN."
        INDEX { vsanIndex }
        ::= { fcsStatsTable 1 }
        
FcsStatsEntry ::= SEQUENCE {
        fcsRxGetReqs                Counter32,
        fcsTxGetReqs                Counter32,
        fcsRxRegReqs                Counter32,
        fcsTxRegReqs                Counter32,
        fcsRxDeregReqs              Counter32,
        fcsTxDeregReqs              Counter32,
        fcsTxRscns                  Counter32,
        fcsRxRscns                  Counter32,
        fcsRejects                  Counter32
}

fcsRxGetReqs  OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The number of Get Requests received by the Fabric
                 Configuration Server on this VSAN."
        ::= { fcsStatsEntry 1 }


fcsTxGetReqs  OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The number of Get Requests sent by the Fabric
                 Configuration Server on this VSAN to other
                 servers in the fabric."
        ::= { fcsStatsEntry 2 }


fcsRxRegReqs  OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The number of Registration Requests received by the 
                 Fabric Configuration Server on this VSAN."
        ::= { fcsStatsEntry 3 }

fcsTxRegReqs  OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The number of Registration Requests sent by the 
                 Fabric Configuration Server on this VSAN."
        ::= { fcsStatsEntry 4 }


fcsRxDeregReqs  OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The number of Deregistration Requests received by 
                 the Fabric Configuration Server on this VSAN."
        ::= { fcsStatsEntry 5 }

fcsTxDeregReqs  OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The number of Deregistration Requests sent by 
                 the Fabric Configuration Server on this VSAN."
        ::= { fcsStatsEntry 6 }


fcsTxRscns  OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The number of Registered State Change 
                 Notifications (RSCNs) sent by the Fabric 
                 Configuration Server on this VSAN."
        ::= { fcsStatsEntry 7 }

fcsRxRscns  OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The number of Registered State Change 
                 Notifications (RSCNs) received by the Fabric 
                 Configuration Server on this VSAN."
        ::= { fcsStatsEntry 8 }

fcsRejects  OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
                "The total number of requests rejected by the local
                 switch on this VSAN."
        ::= { fcsStatsEntry 9 }

-- Notification information.

fcsRejReasonCode OBJECT-TYPE
        SYNTAX        FcGs3RejectReasonCode
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "This object contains the reason code corresponding
                 to the latest Fabric Configuration Server request 
                 rejected by the local system."
        ::= { fcsInformation 1 }

fcsRejReasonCodeExplanation OBJECT-TYPE
        SYNTAX        FcFcsRejReasonExplanation
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
                "This object contains the reason code explanation
                 if the reason code is 'Unable to perform command 
                 req'. This object also corresponds to the latest 
                 Fabric Configuration Server request rejected by
                 the local system."
        ::= { fcsInformation 2 }

fcsMgmtAddrChangeVsanIndex OBJECT-TYPE
        SYNTAX        VsanIndex
        MAX-ACCESS    accessible-for-notify
        STATUS        current
        DESCRIPTION
                "Represents the VSAN id on which a management
                 address change has been detected."
        ::= { fcsInformation 3 }

fcsMgmtAddrChangeIeName OBJECT-TYPE
        SYNTAX        FcNameId
        MAX-ACCESS    accessible-for-notify
        STATUS        current
        DESCRIPTION
                "Represents the IE for which a management address
                 change has been detected."
        ::= { fcsInformation 4 }

-- Notification control objects

fcsReqRejNotifyEnable OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
                "This object specifies if the Fabric Configuration 
                 Server should issue a 'fcsReqRejNotify' 
                 notification.
                 If the value of this object is 'true', then the 
                 notification is issued. If the value of this
                 object is 'false', then the notification is not
                 issued."
        DEFVAL { false }
        ::= { fcsConfiguration 20 }

fcsDiscoveryCompleteNotifyEnable OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
                "This object specifies if the Fabric Configuration 
                 Server should issue a 'fcsDiscoveryCompleteNotify' 
                 notification.
                 If the value of this object is 'true', then the 
                 notification is issued. If the value of this
                 object is 'false', then the notification is not
                 issued."
        DEFVAL { false }
        ::= { fcsConfiguration 21 }


-- Notifications

fcsReqRejNotify NOTIFICATION-TYPE
        OBJECTS {fcsRejReasonCode,
                 fcsRejReasonCodeExplanation}
        STATUS  current
        DESCRIPTION
                "This notification is generated by the Fabric 
                 Configuration Server on this switch whenever it 
                 rejects a Fabric Configuration Server request.
                 The Fabric Configuration Server should update the 
                 fcsRejReasonCode and fcsRejReasonCodeExplanation 
                 objects with the corresponding reason code and 
                 reason code explanation before sending the 
                 notification."
        ::= { fcsNotifications 1 }

fcsDiscoveryCompleteNotify NOTIFICATION-TYPE
        OBJECTS {fcsVsanDiscoveryName}
        STATUS  current
        DESCRIPTION
                "This notification is generated by the Fabric
                 Configuration Server when a discovery cycle 
                 specified by fcsVsanDiscoveryList2k, 
                 fcsVsanDiscoveryList4k and fcsVsanDiscoveryName
                 is completed."
        ::= { fcsNotifications 2 }

fcsMgmtAddrChangeNotify NOTIFICATION-TYPE
        OBJECTS { fcsMgmtAddrChangeVsanIndex,
                  fcsMgmtAddrChangeIeName }
        STATUS  current
        DESCRIPTION
                "This notification is generated by the Fabric
                 Configuration Server whenever the management
                 address of a IE changes. This means that, this
                 notification is generated whenever an entry in 
                 the fcsMgmtAddrListTable changes."
        ::= { fcsNotifications 3 }


-- Conformance

fcsMIBCompliances OBJECT IDENTIFIER ::= { fcsMIBConformance 1 }
fcsMIBGroups      OBJECT IDENTIFIER ::= { fcsMIBConformance 2 }

fcsMIBCompliance MODULE-COMPLIANCE
        STATUS deprecated
            -- superceded by fcsMIBComplianceRev1
        DESCRIPTION
                "The compliance statement for entities which
                 implement the Fabric Configuration Server."
        MODULE MANDATORY-GROUPS {fcsConfigurationGroup,
                                 fcsStatisticsGroup,
                                 fcsNotificationControlGroup,
                                 fcsNotificationGroup}

        OBJECT     fcsMgmtAddrRowStatus             
        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."

        OBJECT     fcsPlatformRowStatus      
        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."

        OBJECT     fcsNodeNameRowStatus      
        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."

        ::= { fcsMIBCompliances 1 }

fcsMIBComplianceRev1 MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
                "The compliance statement for entities which
                 implement the Fabric Configuration Server."
        MODULE MANDATORY-GROUPS {fcsConfigurationGroup,
                                 fcsStatisticsGroup,
                                 fcsNotificationControlGroupRev1,
                                 fcsNotificationGroupRev1}

        OBJECT     fcsMgmtAddrRowStatus             
        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."

        OBJECT     fcsPlatformRowStatus      
        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."

        OBJECT     fcsNodeNameRowStatus      
        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."

        ::= { fcsMIBCompliances 2 }

-- Units of Conformance                                  

fcsConfigurationGroup OBJECT-GROUP
        OBJECTS {fcsVsanDiscoverySpinLock,
                 fcsVsanDiscoveryName,
                 fcsVsanDiscoveryList2k,
                 fcsVsanDiscoveryList4k,
                 fcsStartDiscovery,
                 fcsDiscoveryStatus,
                 fcsDiscoveryCompleteTime,
                 fcsVsanDiscoveryTimeOut,
                 fcsDiscoveryInvalidateCache2k,
                 fcsDiscoveryInvalidateCache4k,
                 fcsIeNumber,
                 fcsIeType,
                 fcsIeDomainId,
                 fcsIeMgmtId,
                 fcsIeFabricName,
                 fcsIeLogicalName,
                 fcsIeMgmtAddrListIndex,
                 fcsIeInfoList,
                 fcsIePortListIndex,
                 fcsMgmtAddr,
                 fcsMgmtAddrConfigSource,
                 fcsMgmtAddrRowStatus,
                 fcsPortListIndex,
                 fcsPortNumber,
                 fcsPortType,
                 fcsPortTXType,
                 fcsPortModuleType,
                 fcsPortPhyPortNum,
                 fcsPortAttachPortNameIndex,
                 fcsPortState,
                 fcsAttachPortName,
                 fcsPlatformNumber,
                 fcsPlatformName,
                 fcsPlatformType,
                 fcsPlatformNodeNameListIndex,
                 fcsPlatformMgmtAddrListIndex,
                 fcsPlatformConfigSource,
                 fcsPlatformValidation,
                 fcsPlatformValidationResult,
                 fcsPlatformRowStatus,
                 fcsNodeNameConfigSource,
                 fcsNodeNameRowStatus}

        STATUS   current
        DESCRIPTION
                "A collection of objects for displaying and configuring
                 Fabric Configuration Server parameters."
        ::= { fcsMIBGroups 1 }

fcsStatisticsGroup OBJECT-GROUP
        OBJECTS {fcsTotalRejects,
                 fcsRxGetReqs,
                 fcsTxGetReqs,
                 fcsRxRegReqs,
                 fcsTxRegReqs,
                 fcsRxDeregReqs,
                 fcsTxDeregReqs,
                 fcsTxRscns,
                 fcsRxRscns,
                 fcsRejects}
        STATUS  current
        DESCRIPTION
                "A collection of objects for displaying the Fabric 
                 Configuration Server statistics information."
        ::= { fcsMIBGroups 2 }

fcsNotificationControlGroup OBJECT-GROUP
        OBJECTS {fcsReqRejNotifyEnable,
                 fcsRejReasonCode,
                 fcsRejReasonCodeExplanation,
                 fcsDiscoveryCompleteNotifyEnable}
        STATUS  deprecated
        DESCRIPTION
                "A collection of notification control and 
                 notification information objects for monitoring 
                 Fabric Configuration Server request 
                 rejection and discovery of remote toplogy 
                 information."
        ::= { fcsMIBGroups 3 }

fcsNotificationGroup NOTIFICATION-GROUP
        NOTIFICATIONS {fcsReqRejNotify,
                       fcsDiscoveryCompleteNotify}
        STATUS  deprecated
        DESCRIPTION
                "A collection of notifications for monitoring 
                 Fabric Configuration Server request 
                 rejection and discovery of remote toplogy 
                 information."
        ::= { fcsMIBGroups 4 }

fcsNotificationGroupRev1 NOTIFICATION-GROUP
        NOTIFICATIONS {fcsReqRejNotify,
                       fcsDiscoveryCompleteNotify,
                       fcsMgmtAddrChangeNotify}
        STATUS  current
        DESCRIPTION
                "A collection of notifications for monitoring 
                 Fabric Configuration Server request 
                 rejection, discovery of remote toplogy 
                 information and management address changes."
        ::= { fcsMIBGroups 5 }

fcsNotificationControlGroupRev1 OBJECT-GROUP
        OBJECTS {fcsReqRejNotifyEnable,
                 fcsRejReasonCode,
                 fcsRejReasonCodeExplanation,
                 fcsDiscoveryCompleteNotifyEnable,
                 fcsMgmtAddrChangeVsanIndex,
                 fcsMgmtAddrChangeIeName}
        STATUS  current
        DESCRIPTION
                "A collection of notification control and 
                 notification information objects for monitoring 
                 Fabric Configuration Server request 
                 rejection and discovery of remote toplogy 
                 information."
        ::= { fcsMIBGroups 6 }

END
