-- *********************************************************************
-- CISCO-RSCN-MIB.my: Registered State Change Notificaton (RSCN) Mib
--   
-- September 2002, H K Vivek
--   
-- Copyright (c) 2002-2004, 2005, 2006, 2009 by cisco Systems Inc.
-- All rights reserved.
--   
-- *********************************************************************

CISCO-RSCN-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
        FROM SNMPv2-TC
    FcAddressId
        FROM CISCO-ST-TC
    vsanIndex
        FROM CISCO-VSAN-MIB
    FcGs3RejectReasonCode
        FROM CISCO-NS-MIB
    ciscoMgmt
        FROM CISCO-SMI;


ciscoRscnMIB MODULE-IDENTITY
    LAST-UPDATED    "200809010000Z"
    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 Fibre
        Channel's Registered State Change Notification 
        (RSCN) functionality, which is specified by
        FC-FLA and FC-FS.
        GLOSSARY :
        RSCN    - Registered State Change Notification.
                  RSCN Notifications are sent to Nx_ports
                  and other switches to notify that an event
                  has occured.
        SW_RSCN - Switch Registered State Change Notification.
                  SW_RSCN Notifications are sent to neighbouring
                  switches in a fabric to notify that an
                  event has occured.
         ELS    - Extended Link Service.
                  RSCN Software module uses ELS frame formats 
                  to send RSCN messages.
         ILS    - Inter Link Service.
                  RSCN Software module uses ILS frame formats
                  to send SW-RSCN messages."
    REVISION        "200809010000Z"
    DESCRIPTION
        "modified rscnEventTov range from '1..2000' to '0.2000'."
    REVISION        "200608170000Z"
    DESCRIPTION
        "Added following notifications
        -rscnIlsRxRejectReqNotify
        -rscnElsRxRejectReqNotify

        Added 2 new notification control objects:
        - rscnIlsRxRejectReqNotifyEnable
        - rscnElsRxRejectReqNotifyEnable

        Added rscnNotifyControlGroupSup1 OBJECT-GROUP
        Added rscnRejectNotifyGroup NOTIFICATION-GROUP
        Added rscnMIBComplianceRev3 MODULE-COMPLIANCE"
    REVISION        "200505060000Z"
    DESCRIPTION
        "Added rscnEventTovTable."
    REVISION        "200310160000Z"
    DESCRIPTION
        "Added rscnMultiPidTable."
    REVISION        "200209200000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { ciscoMgmt 292 }


ciscoRscnMIBObjects  OBJECT IDENTIFIER
    ::= { ciscoRscnMIB 1 }

rscnMIBConformance  OBJECT IDENTIFIER
    ::= { ciscoRscnMIB 2 }

rscnConfiguration  OBJECT IDENTIFIER
    ::= { ciscoRscnMIBObjects 1 }

rscnStats  OBJECT IDENTIFIER
    ::= { ciscoRscnMIBObjects 2 }

rscnInformation  OBJECT IDENTIFIER
    ::= { ciscoRscnMIBObjects 3 }

rscnNotification  OBJECT IDENTIFIER
    ::= { ciscoRscnMIBObjects 4 }

rscnNotifications  OBJECT IDENTIFIER
    ::= { rscnNotification 0 }


-- State Change Registration Table

rscnScrNumber OBJECT-TYPE
    SYNTAX          Integer32 (0..2147483647)
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of Nx_Ports currently registered
        to receive RSCNs." 
    ::= { rscnConfiguration 1 }

rscnScrTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF RscnScrEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table of Nx_Ports that have registered to
        receive RSCNs on all VSANs configured on the 
        local switch."
    ::= { rscnConfiguration 2 }

rscnScrEntry OBJECT-TYPE
    SYNTAX          RscnScrEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry (conceptual row) containing information
        about one Nx_Port which has registered to receive
        RSCNs on the VSAN indicated by vsanIndex."
    INDEX           {
                        vsanIndex,
                        rscnScrFcId
                    } 
    ::= { rscnScrTable 1 }

RscnScrEntry ::= SEQUENCE {
        rscnScrFcId    FcAddressId,
        rscnScrRegType INTEGER
}

rscnScrFcId OBJECT-TYPE
    SYNTAX          FcAddressId
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The Fibre Channel Identifier (FC-ID) of the
        subscribing Nx_Port." 
    ::= { rscnScrEntry 1 }

rscnScrRegType OBJECT-TYPE
    SYNTAX          INTEGER  {
                        fromFabricCtrlr(1),
                        fromNxPort(2),
                        fromBoth(3)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the type of registration
        desired by the subscriber.

        'fromFabricCtrlr' indicates RSCNs generated by the 
        Fabric Controller.

        'fromNxPort' indicates RSCNs generated by 
        Nx_Ports.

        'fromBoth' indicates RSCNs generated by Fabric
        Controller and Nx_Ports." 
    ::= { rscnScrEntry 2 }
 


-- Statistics

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

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

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

rscnStatsTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF RscnStatsEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The statistics related to the RSCN module. The
        statistics are maintained per VSAN."
    ::= { rscnStats 4 }

rscnStatsEntry OBJECT-TYPE
    SYNTAX          RscnStatsEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry (conceptual row) in this table."
    INDEX           { vsanIndex } 
    ::= { rscnStatsTable 1 }

RscnStatsEntry ::= SEQUENCE {
        rscnRxScrs       Counter32,
        rscnRxRscns      Counter32,
        rscnTxRscns      Counter32,
        rscnRxSwRscns    Counter32,
        rscnTxSwRscns    Counter32,
        rscnScrRej       Counter32,
        rscnRscnReqRej   Counter32,
        rscnSwRscnReqRej Counter32
}

rscnRxScrs OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of SCRs received from Nx_Ports
        on this VSAN." 
    ::= { rscnStatsEntry 1 }

rscnRxRscns OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of RSCNs from Nx_Ports received on
        this VSAN." 
    ::= { rscnStatsEntry 2 }

rscnTxRscns OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total number of RSCNs transmitted on this
        VSAN." 
    ::= { rscnStatsEntry 3 }

rscnRxSwRscns OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of Inter-Switch Registered State
        Change Notifications (SW_RSCN) received on this
        VSAN from other switches." 
    ::= { rscnStatsEntry 4 }

rscnTxSwRscns OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of Inter-Switch Registered State
        Change Notifications (SW_RSCN) transmitted
        on this VSAN to other switches." 
    ::= { rscnStatsEntry 5 }

rscnScrRej OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of SCR rejected on this VSAN." 
    ::= { rscnStatsEntry 6 }

rscnRscnReqRej OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of RSCN requests rejected on this VSAN." 
    ::= { rscnStatsEntry 7 }

rscnSwRscnReqRej OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of SW_RSCN requests rejected on this VSAN." 
    ::= { rscnStatsEntry 8 }
 


-- Notification Information

rscnIlsRejReasonCode OBJECT-TYPE
    SYNTAX          FcGs3RejectReasonCode
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The reason code corresponding to an ILS
        request rejection. This object contains the 
        reason code corresponding to the most recent 
        SCR or RSCN  request rejection by the RSCN 
        module." 
    ::= { rscnInformation 1 }

rscnElsRejReasonCode OBJECT-TYPE
    SYNTAX          FcGs3RejectReasonCode
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The reason code corresponding to an ELS
        request rejection. This object contains the
        reason code corresponding the most recent
        SW_RSCN request rejection by the RSCN module." 
    ::= { rscnInformation 2 }

-- Notification control objects

rscnIlsRejectReqNotifyEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object specifies if the RSCN module should
        generate 'rscnIlsRejectReqNotify' notifications.

        If value of this object is 'true', then the 
        notification is generated when a SW_RSCN request 
        is rejected.

        If it is 'false', the notification is not generated."
    DEFVAL          { false } 
    ::= { rscnConfiguration 3 }

rscnElsRejectReqNotifyEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object specifies if the RSCN module should
        generate 'rscnElsRejectReqNotify' notifications.

        If value of this object is 'true', then  the 
        notification is generated when a SCR or RSCN request 
        is rejected. 

        If it is 'false', the notification is not generated."
    DEFVAL          { false } 
    ::= { rscnConfiguration 4 }

rscnNotifyFcId OBJECT-TYPE
    SYNTAX          FcAddressId
    MAX-ACCESS      accessible-for-notify
    STATUS          current
    DESCRIPTION
        "The FC-ID of an Nx_Port.
        This object is to be used in the notifications:
        rscnElsRejectReqNotify, rscnIlsRejectReqNotify,
        rscnElsRxRejectReqNotify and rscnIlsRxRejectReqNotify.
        This object is defined since the rscnScrFcId
        object in the rscnScrTable is not-accessible." 
    ::= { rscnConfiguration 5 }

rscnMultiPidTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF RscnMultiPidEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table contains the configuration information
        for multi-pid option for all VSANs on the local
        device."
    ::= { rscnConfiguration 6 }

rscnMultiPidEntry OBJECT-TYPE
    SYNTAX          RscnMultiPidEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry (conceptual row) in this table."
    INDEX           { vsanIndex } 
    ::= { rscnMultiPidTable 1 }

RscnMultiPidEntry ::= SEQUENCE {
        rscnMultiPidEnable TruthValue
}

rscnMultiPidEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object specifies whether the multi-pid
        option is enabled on this VSAN.

        If this object is set to 'true', then the 
        multi-pid option is enabled. If this object is 
        set to 'false, then the multi-pid option is 
        disabled.

        If the multi-pid option is enabled, then RSCNs
        generated to the registered Nx ports may contain
        more than one affected port ID. By enabling this
        option, the number of RSCNs generated can be 
        reduced."
    DEFVAL          { false } 
    ::= { rscnMultiPidEntry 1 }
 


rscnEventTovTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF RscnEventTovEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table contains the configuration information
        for Event Time Out Value option for all VSANs on 
        the local device. The Event TOV value is used to
        send the coalesced RSCNs to the registered user."
    ::= { rscnConfiguration 7 }

rscnEventTovEntry OBJECT-TYPE
    SYNTAX          RscnEventTovEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry (conceptual row) in this table represents
        the Event Time out value on a VSAN."
    INDEX           { vsanIndex } 
    ::= { rscnEventTovTable 1 }

RscnEventTovEntry ::= SEQUENCE {
        rscnEventTov Unsigned32
}

rscnEventTov OBJECT-TYPE
    SYNTAX          Unsigned32 (0..2000)
    UNITS           "milli-secs"
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object specifies the event time-out value
        configured for the VSAN. This timeout value 
        corresponds to the coalescing timeout.
        This object is used to merge a number of RSCNs 
        into a single frame and send them out when  
        timer expires. The value of zero indicates that 
        frames will not be coalesced."
    DEFVAL          { 2000 } 
    ::= { rscnEventTovEntry 1 }
 


rscnIlsRxRejectReqNotifyEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object specifies if the RSCN module should
        generate 'rscnIlsRxRejectReqNotify' notifications.

        If value of this object is 'true', then
        the notification is generated when a SW_RSCN
        that is rejected by another device is received
        on the local device.

        If it is 'false', the notification is not generated."
    DEFVAL          { false } 
    ::= { rscnConfiguration 8 }

rscnElsRxRejectReqNotifyEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object specifies if the RSCN module should
        generate 'rscnElsRxRejectReqNotify' notifications.

        If value of this object is 'true', then the
        notification is generated when a RSCN request that is
        rejected by another device is received on the local
        device.

        If it is 'false', the notification is not generated."
    DEFVAL          { false } 
    ::= { rscnConfiguration 9 }

-- Notifications

rscnElsRejectReqNotify NOTIFICATION-TYPE
    OBJECTS         {
                        rscnElsRejReasonCode,
                        rscnNotifyFcId
                    }
    STATUS          current
    DESCRIPTION
        "This notification is generated by the RSCN module
        on this switch whenever it rejects a SCR or RSCN 
        request.

        The rscnScrFcId object indicates the FC-ID of the 
        sender of the request that was rejected."
   ::= { rscnNotifications 1 }

rscnIlsRejectReqNotify NOTIFICATION-TYPE
    OBJECTS         {
                        rscnIlsRejReasonCode,
                        rscnNotifyFcId
                    }
    STATUS          current
    DESCRIPTION
        "This notification is generated by the RSCN module
        on this switch whenever it rejects a SW_RSCN 
        request.

        The rscnScrFcId object contains the FC-ID of the
        sender of the request that was rejected."
   ::= { rscnNotifications 2 }

rscnElsRxRejectReqNotify NOTIFICATION-TYPE
    OBJECTS         {
                        rscnElsRejReasonCode,
                        rscnNotifyFcId
                    }
    STATUS          current
    DESCRIPTION
        "This notification is generated by the RSCN module
        on this switch whenever it receives a rejected 
        RSCN request.

        The rscnScrFcId object indicates the FC-ID of the 
        sender where the request was rejected."
   ::= { rscnNotifications 3 }

rscnIlsRxRejectReqNotify NOTIFICATION-TYPE
    OBJECTS         {
                        rscnIlsRejReasonCode,
                        rscnNotifyFcId
                    }
    STATUS          current
    DESCRIPTION
        "This notification is generated by the RSCN module
        on this switch whenever it receives a rejected 
        SW_RSCN request.

        The rscnScrFcId object contains the FC-ID of the
        sender where the request was rejected."
   ::= { rscnNotifications 4 }
-- Conformance

rscnMIBCompliances  OBJECT IDENTIFIER
    ::= { rscnMIBConformance 1 }

rscnMIBGroups  OBJECT IDENTIFIER
    ::= { rscnMIBConformance 2 }


rscnMIBCompliance MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for entities which
        implement RSCN feature."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        rscnConfigGroup,
                        rscnStatsGroup,
                        rscnNotifyControlGroup,
                        rscnNotifyGroup
                    }
    ::= { rscnMIBCompliances 1 }

rscnMIBComplianceRev1 MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for entities which
        implement RSCN feature."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        rscnConfigGroupRev1,
                        rscnStatsGroup,
                        rscnNotifyControlGroup,
                        rscnNotifyGroup
                    }
    ::= { rscnMIBCompliances 2 }

rscnMIBComplianceRev2 MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for entities which
        implement RSCN feature."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        rscnConfigGroupRev1,
                        rscnStatsGroup,
                        rscnNotifyControlGroup,
                        rscnNotifyGroup,
                        rscnConfigGroupRev1Sup1
                    }
    ::= { rscnMIBCompliances 3 }

rscnMIBComplianceRev3 MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "The compliance statement for entities which
        implement RSCN feature."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        rscnConfigGroupRev1,
                        rscnStatsGroup,
                        rscnNotifyControlGroup,
                        rscnNotifyGroup,
                        rscnConfigGroupRev1Sup1,
                        rscnRejectNotifyGroup,
                        rscnNotifyControlGroupSup1
                    }
    ::= { rscnMIBCompliances 4 }

-- Units of conformance

rscnConfigGroup OBJECT-GROUP
    OBJECTS         {
                        rscnScrNumber,
                        rscnScrRegType,
                        rscnNotifyFcId
                    }
    STATUS          deprecated
    DESCRIPTION
        "A collection of objects for configuring
        and displaying SCR entries."
    ::= { rscnMIBGroups 1 }

rscnStatsGroup OBJECT-GROUP
    OBJECTS         {
                        rscnScrTotalRejects,
                        rscnRscnReqTotalRejects,
                        rscnSwRscnReqTotalRejects,
                        rscnRxScrs,
                        rscnRxRscns,
                        rscnTxRscns,
                        rscnRxSwRscns,
                        rscnTxSwRscns,
                        rscnScrRej,
                        rscnRscnReqRej,
                        rscnSwRscnReqRej
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects for displaying
        RSCN statistics."
    ::= { rscnMIBGroups 2 }

rscnNotifyControlGroup OBJECT-GROUP
    OBJECTS         {
                        rscnIlsRejReasonCode,
                        rscnElsRejReasonCode,
                        rscnIlsRejectReqNotifyEnable,
                        rscnElsRejectReqNotifyEnable
                    }
    STATUS          current
    DESCRIPTION
        "A collection of notification control and
        notification information objects."
    ::= { rscnMIBGroups 3 }

rscnNotifyGroup NOTIFICATION-GROUP
   NOTIFICATIONS    {
                        rscnIlsRejectReqNotify,
                        rscnElsRejectReqNotify
                    }
    STATUS          current
    DESCRIPTION
        "A collection of notifications for monitoring
        ILS and ELS request rejection by the RSCN
        module."
    ::= { rscnMIBGroups 4 }

rscnConfigGroupRev1 OBJECT-GROUP
    OBJECTS         {
                        rscnScrNumber,
                        rscnScrRegType,
                        rscnNotifyFcId,
                        rscnMultiPidEnable
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects for configuring
        and displaying SCR entries and multi-pid
        option."
    ::= { rscnMIBGroups 5 }

rscnConfigGroupRev1Sup1 OBJECT-GROUP
    OBJECTS         { rscnEventTov }
    STATUS          current
    DESCRIPTION
        "A collection of object(s) for configuring
        the Event time out option."
    ::= { rscnMIBGroups 6 }

rscnRejectNotifyGroup NOTIFICATION-GROUP
   NOTIFICATIONS    {
                        rscnIlsRxRejectReqNotify,
                        rscnElsRxRejectReqNotify
                    }
    STATUS          current
    DESCRIPTION
        "A collection of notifications for monitoring
        ILS and ELS request rejection by other switches/ 
        devices."
    ::= { rscnMIBGroups 7 }

rscnNotifyControlGroupSup1 OBJECT-GROUP
    OBJECTS         {
                        rscnIlsRxRejectReqNotifyEnable,
                        rscnElsRxRejectReqNotifyEnable
                    }
    STATUS          current
    DESCRIPTION
        "A collection of notification control objects."
    ::= { rscnMIBGroups 8 }

END



