Network Working Group
Request for Comments: 4983
Category: Standards Track
C. DeSanti
H.K. Vivek
K. McCloghrie
Cisco Systems
S. Gai
Nuova Systems
August 2007

Fibre Channel Registered State Change Notification (RSCN) MIB

Status of This Memo

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

Abstract

This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes managed objects for information related to the management of Fibre Channel's Registered State Change Notifications (RSCNs).

Table of Contents

   1. Introduction ....................................................3
   2. The Internet-Standard Management Framework ......................3
   3. Short Overview of Fibre Channel .................................3
   4. Relationship to Other MIBs ......................................5
   5. MIB Overview ....................................................5
      5.1. Fibre Channel Management Instance ..........................5
      5.2. Switch Index ...............................................6
      5.3. Fabric Index ...............................................6
      5.4. The t11FcRscnRegistrationGroup Group .......................6
      5.5. The t11FcRscnNotifyGroup Group .............................6
      5.6. The t11FcRscnNotifyControlGroup Group ......................7
      5.7. The t11FcRscnStatsGroup Group ..............................7
   6. Definitions .....................................................8
      6.1. The T11-FC-RSCN-MIB Module .................................8
   7. IANA Considerations ............................................23
   8. Security Considerations ........................................24
   9. Acknowledgements ...............................................25
   10. Normative References ..........................................25
   11. Informative References ........................................26

1. Introduction

This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes managed objects for information related to Registered State Change Notifications (RSCNs) [FC-LS] in a Fibre Channel network, including which Nx_Ports are registered to receive which types of RSCNs, the control and generation of Simple Network Management Protocol (SNMP) notifications on registration failures, and RSCN-related statistics.

This memo was previously approved by INternational Committee for Information Technology Standards (INCITS) Task Group T11.5 (http://www.t11.org); this document is a product of the IETF's IMSS working group.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14, RFC 2119 [RFC2119].

2. The Internet-Standard Management Framework

For a detailed overview of the documents that describe the current Internet-Standard Management Framework, please refer to section 7 of RFC 3410 [RFC3410].

Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. MIB objects are generally accessed through the Simple Network Management Protocol (SNMP). Objects in the MIB are defined using the mechanisms defined in the Structure of Management Information (SMI). This memo specifies a MIB module that is compliant to the SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580].

3. Short Overview of Fibre Channel

The Fibre Channel (FC) is logically a bidirectional point-to-point serial data channel, structured for high performance. Fibre Channel provides a general transport vehicle for higher level protocols such as Small Computer System Interface (SCSI) command sets, the High- Performance Parallel Interface (HIPPI) data framing, IP (Internet Protocol), IEEE 802.2, and others.

Physically, Fibre Channel is an interconnection of multiple communication points, called N_Ports, interconnected either by a switching network, called a Fabric, or by a point-to-point link. A

Fibre Channel "node" consists of one or more N_Ports. A Fabric may consist of multiple Interconnect Elements, some of which are switches. An N_Port connects to the Fabric via a port on a switch called an F_Port. When multiple FC nodes are connected to a single port on a switch via an "Arbitrated Loop" topology, the switch port is called an FL_Port, and the nodes' ports are called NL_Ports. The term Nx_Port is used to refer to either an N_Port or an NL_Port. The term Fx_Port is used to refer to either an F_Port or an FL_Port. A switch port, which is interconnected to another switch port via an Inter-Switch Link (ISL), is called an E_Port. A B_Port connects a bridge device with an E_Port on a switch; a B_Port provides a subset of E_Port functionality.

Many Fibre Channel components, including the fabric, each node, and most ports, have globally unique names. These globally unique names are typically formatted as World Wide Names (WWNs). More information on WWNs can be found in [FC-FS]. WWNs are expected to be persistent across agent and unit resets.

Fibre Channel frames contain 24-bit address identifiers that identify the frame's source and destination ports. Each FC port has both an address identifier and a WWN. When a fabric is in use, the FC address identifiers are dynamically assigned by a switch. Each octet of a 24-bit address represents a level in an address hierarchy, with a Domain_ID being the highest level of the hierarchy.

Registered State Change Notifications (RSCNs) are defined in [FC-LS] as a means to provide Nx_Ports that have registered to receive such notifications with a timely indication of changes in the state of nodes attached to the fabric. Specifically, an Nx_Port may choose to register, using a State Change Registration (SCR) request [FC-LS] to receive RSCNs. When an event occurs that may affect a registered Nx_Port's port's state, the registered Nx_Port will receive an RSCN. For example, an Nx_Port can use RSCNs as the means by which it is informed of the failures of other nodes, of new devices coming online, or even of more network-accessible storage becoming available. The payload of the RSCN indicates the type of change and includes the address of the changed port. RSCNs are often generated by the fabric, but an Nx_Port can also generate (and send to the fabric) an RSCN if and when it detects an event not visible to the fabric. The sender of an RSCN may coalesce several events into a single RSCN message. Each RSCN is a "request" that is acknowledged by the receiver with an accept or reject.

An RSCN is received by an Nx_Port from the Fabric as an Extended Link Service (ELS) request [FC-LS]. The Fabric distributes RSCNs between Switches using an SW_ILS frame with an Inter-Switch RSCN payload, also known as an SW_RSCN [FC-SW-4]. So, when a Switch has directly attached Nx_Ports that have registered to receive RSCNs, it converts received SW_RSCNs (i.e., SW_ILS frames containing SW_RSCN payloads) into ELS requests containing the corresponding RSCN which it sends to each such Nx_Port.

The latest standard for an interconnecting Fabric containing multiple Fabric Switch elements is [FC-SW-4]. [FC-SW-4] carries forward the earlier specification for the operation of a single Fabric in a physical infrastructure, and augments it with the definition of Virtual Fabrics and with the specification of how multiple Virtual Fabrics can operate within one (or more) physical infrastructures. The use of Virtual Fabrics provides for each frame to be tagged in its header to indicate which one of several Virtual Fabrics that frame is being transmitted on. All frames entering a particular "Core Switch" [FC-SW-4] (i.e., a physical switch) on the same Virtual Fabric are processed by the same "Virtual Switch" within that Core Switch.

4. Relationship to Other MIBs

The first standardized MIB for Fibre Channel [RFC2837] was focused on Fibre Channel switches. It was replaced by the more generic Fibre Channel Management MIB [RFC4044] which defines basic information for Fibre Channel hosts and switches, including extensions to the standard [IF-MIB] for Fibre Channel interfaces. [RFC4044] includes the specification of how the generic objects defined in [IF-MIB] apply to Fibre Channel interfaces.

   This MIB imports some common Textual Conventions defined in the
   T11-TC-MIB [RFC4439] and in the T11-FC-NAME-SERVER-MIB [RFC4438].

5. MIB Overview

This section explains the use of a Fibre Channel management instance, a Switch Index, and a Fabric Index. It also describes the four MIB groups contained in the MIB.

5.1. Fibre Channel Management Instance

A Fibre Channel management instance is defined in [RFC4044] as a separable managed instance of Fibre Channel functionality. Fibre Channel functionality may be grouped into Fibre Channel management instances in whatever way is most convenient for the implementation(s). For example, one such grouping accommodates a single SNMP agent having multiple AgentX [RFC2741] sub-agents, with each sub-agent implementing a different Fibre Channel management instance.

The object, fcmInstanceIndex, is IMPORTed from the FC-MGMT-MIB [RFC4044] as the index value to uniquely identify each Fibre Channel management instance, for example, within the same SNMP context ([RFC3411], section 3.3.1).

5.2. Switch Index

The FC-MGMT-MIB [RFC4044] defines the fcmSwitchTable as a table of information about Fibre Channel switches which are managed by Fibre Channel management instances. Each Fibre Channel management instance can manage one or more Fibre Channel switches. The Switch Index, fcmSwitchIndex, is IMPORTed from the FC-MGMT-MIB as the index value to uniquely identify a Fibre Channel switch amongst those (one or more) managed by the same Fibre Channel management instance.

5.3. Fabric Index

Whether operating on a Physical Fabric (i.e., without Virtual Fabrics) or within a Virtual Fabric, the manner of operation of RSCNs within a/each Fabric is identical. Therefore, this MIB defines all Fabric-related information in tables that are INDEXed by an arbitrary integer, named a "Fabric Index", the syntax of which is IMPORTed from the T11-TC-MIB [RFC4439]. When a device is connected to a single Physical Fabric, without use of any Virtual Fabrics, the value of this Fabric Index will always be 1. In an environment of multiple Virtual and/or Physical Fabrics, this index provides a means to distinguish one Fabric from another.

It is quite possible, and may even be likely, that a Fibre Channel switch will have ports connected to multiple Virtual and/or Physical Fabrics. Thus, in order to simplify a management protocol query concerning all the Fabrics to which a single switch is connected, fcmSwitchIndex will be listed before t11FcRscnFabricIndex when they both appear in the same INDEX clause.

5.4. The t11FcRscnRegistrationGroup Group

This group contains information about the Nx_Ports which have registered to receive RSCNs.

5.5. The t11FcRscnNotifyGroup Group

This group contains two notifications: one generated when a switch rejects an SCR or RSCN; the other when a switch rejects an SW_RSCN.

5.5.1. Flow-Control for Notifications

When defining SNMP notifications for events that occur in the data- plane, the maximum frequency of their generation needs to be considered. Unless there is some limiting factor, such notifications need to be flow-controlled in some way, e.g., defined such that after some maximum number within a specified time interval have occurred, further notifications are suppressed for some subsequent time interval. However, when such a suppression occurs, the Network Management System (NMS) that didn't receive the notifications (because they were suppressed) needs to be able to obtain an indication of how many were suppressed. Therefore, an additional Counter32 object needs to be defined, and/or a new type of notification needs to be defined for use at the end of the interval. While this is extra complexity, it is necessary for notifications that need to be flow-controlled.

In contrast, for notifications such as both the ones defined in this MIB module, which are generated due to control-plane events (and are not able to start a chain reaction), the extra complexity of flow- controlling these types of notifications is not warranted.

5.6. The t11FcRscnNotifyControlGroup Group

This group contains one object for each notification in the t11FcRscnNotifyGroup group to enable/disable that notification, as well as three objects that record information about the latest rejection of an SCR, RSCN or SW_RSCN. Specifically, they record the content (if available) of the rejected request, the source of the rejected request, and the reason for the rejection.

5.7. The t11FcRscnStatsGroup Group

This group contains RSCN-related statistics. Two levels of statistics are included:

  1. counters at the message-type level, for: - the number of SCRs received/rejected, - the number of RSCNs sent/received/rejected, - the number of SW_RSCNs sent/received/rejected.
  1. counters for each different category of sent/received RSCNs, where different categories are indicated by different values of the 'Event Qualifier' contained in an RSCN message. Note that if and when several RSCN events are coalesced into a single RSCN message, then that message may be counted in more than one of these counters. No counters are defined in this MIB for the 'Event Qualifier' value of '0001'b (meaning "Changed Name

Server Object") because these types of RSCNs are counted by the t11NsInRscns and t11NsOutRscns objects already defined in [RFC4438].

6. Definitions

6.1. The T11-FC-RSCN-MIB Module

T11-FC-RSCN-MIB DEFINITIONS ::= BEGIN

-- The Fibre Channel RSCN MIB
--
-- for the monitoring of registrations by Nx_Ports to receive
-- Registered State Change Notifications (RSCNs), and the
-- monitoring of RSCN usage.
--

IMPORTS

    MODULE-IDENTITY, OBJECT-TYPE,
    NOTIFICATION-TYPE,
    Counter32, mib-2                     FROM SNMPv2-SMI   -- [RFC2578]
    MODULE-COMPLIANCE, OBJECT-GROUP,
    NOTIFICATION-GROUP                   FROM SNMPv2-CONF  -- [RFC2580]
    TruthValue                           FROM SNMPv2-TC    -- [RFC2579]
    fcmInstanceIndex, fcmSwitchIndex,
    FcNameIdOrZero, FcAddressIdOrZero    FROM FC-MGMT-MIB  -- [RFC4044]
    T11NsGs4RejectReasonCode   FROM T11-FC-NAME-SERVER-MIB -- [RFC4438]
    T11FabricIndex                       FROM T11-TC-MIB;  -- [RFC4439]

t11FcRscnMIB  MODULE-IDENTITY
    LAST-UPDATED "200701080000Z"
    ORGANIZATION "For the initial versions, T11.
                  For later versions, the IETF's IMSS Working Group."
    CONTACT-INFO
            "     Claudio DeSanti
                  Cisco Systems, Inc.
                  170 West Tasman Drive
                  San Jose, CA 95134 USA
                  EMail: cds@cisco.com

Keith McCloghrie
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134 USA
EMail: kzm@cisco.com"

DESCRIPTION

"The MIB module for the management of registrations

by Nx_Ports to receive RSCNs (Registered State Change Notifications) on a Fibre Channel Fabric, as defined in FC-LS, and for the monitoring of RSCNs sent/received or rejected in a Fibre Channel Fabric.

           Copyright © The Internet Society (2007).  This version of
           this MIB module is part of RFC 4983;  see the RFC itself for
           full legal notices."
    REVISION    "200701080000Z"
    DESCRIPTION
           "Initial version of this MIB module, published as RFC 4983."
    ::= { mib-2 161 }

t11FcRscnNotifications  OBJECT IDENTIFIER ::= { t11FcRscnMIB 0 }
t11FcRscnObjects        OBJECT IDENTIFIER ::= { t11FcRscnMIB 1 }
t11FcRscnConformance    OBJECT IDENTIFIER ::= { t11FcRscnMIB 2 }
t11FcRscnRegistrations  OBJECT IDENTIFIER ::= { t11FcRscnObjects 1 }
t11FcRscnStats          OBJECT IDENTIFIER ::= { t11FcRscnObjects 2 }
t11FcRscnInformation    OBJECT IDENTIFIER ::= { t11FcRscnObjects 3 }

-- State Change Registration Table

t11FcRscnRegTable  OBJECT-TYPE
    SYNTAX         SEQUENCE OF T11FcRscnRegEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
           "A table of Nx_Ports that have registered to receive
           RSCNs on all Fabrics configured on one or more Fibre
           Channel switches."
    ::= { t11FcRscnRegistrations 1 }

t11FcRscnRegEntry  OBJECT-TYPE
    SYNTAX        T11FcRscnRegEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
           "An entry containing information about one Nx_Port that
           has registered with a particular switch (identified by
           values of fcmInstanceIndex and fcmSwitchIndex) for a
           particular Fabric (identified by a t11FcRscnFabricIndex
           value)."
    INDEX   { fcmInstanceIndex, fcmSwitchIndex, t11FcRscnFabricIndex,
              t11FcRscnRegFcId }
    ::= { t11FcRscnRegTable 1 }

T11FcRscnRegEntry ::= SEQUENCE {

    t11FcRscnFabricIndex         T11FabricIndex,
    t11FcRscnRegFcId             FcAddressIdOrZero,
    t11FcRscnRegType             BITS
}

t11FcRscnFabricIndex OBJECT-TYPE

    SYNTAX      T11FabricIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
           "An index value that uniquely identifies a particular
           Fabric.

In a Fabric conformant to FC-SW-4, multiple Virtual Fabrics can operate within one (or more) physical infrastructures. In such a case, this index value is used to uniquely identify a particular Fabric within a physical infrastructure.

           In a Fabric that has (or can have) only a single Fabric
           operating within the physical infrastructure, the
           value of this Fabric Index will always be 1."
    REFERENCE
          "ANSI INCITS 418-2006, Fibre Channel - Switch Fabric - 4
          (FC-SW-4), December 2006."
    ::= { t11FcRscnRegEntry 1 }

t11FcRscnRegFcId  OBJECT-TYPE
    SYNTAX        FcAddressIdOrZero (SIZE (3))
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
           "The Fibre Channel Address Identifier of the
           registering Nx_Port."
    ::= { t11FcRscnRegEntry 2 }

t11FcRscnRegType  OBJECT-TYPE
    SYNTAX        BITS {
                      fromFabricController(0),
                      fromNxPort(1)
                  }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
           "This object indicates the type of registration
           desired by the registering Nx_Port, one bit per type:

'fromFabricController' -- RSCNs generated for events

detected by the Fabric Controller.

           'fromNxPorts'          -- RSCNs generated for events
                                  detected by the affected Nx_Port."
    REFERENCE
          "ANSI INCITS 433-2007, Fibre Channel - Link Services
          (FC-LS), July 2007, Table 40."
    ::= { t11FcRscnRegEntry 3 }

-- Statistics

t11FcRscnStatsTable  OBJECT-TYPE
    SYNTAX         SEQUENCE OF T11FcRscnStatsEntry
    MAX-ACCESS     not-accessible
    STATUS         current
    DESCRIPTION
           "The RSCN-related statistics on all Fabrics configured
           on one or more Fibre Channel switches.

Two levels of statistics are included:

  1. counters at the message-type level, for: - the number of SCRs received/rejected, - the number of RSCNs sent/received/rejected, - the number of SW_RSCNs sent/received/rejected.
              2) counters of sent/received RSCNs per 'Event
                 Qualifier' value.  Note that if and when several
                 RSCN events are coalesced into a single RSCN
                 message, then that message may be counted in
                 more than one of these counters."
    ::= { t11FcRscnStats 1 }

t11FcRscnStatsEntry  OBJECT-TYPE
    SYNTAX        T11FcRscnStatsEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
           "An entry containing statistics for a particular Fabric
           (identified by a t11FcRscnFabricIndex value) on a particular
           switch (identified by values of fcmInstanceIndex and
           fcmSwitchIndex)."
    INDEX  { fcmInstanceIndex, fcmSwitchIndex, t11FcRscnFabricIndex }
    ::= { t11FcRscnStatsTable 1 }

T11FcRscnStatsEntry ::= SEQUENCE {

t11FcRscnInScrs Counter32,

    t11FcRscnInRscns                   Counter32,
    t11FcRscnOutRscns                  Counter32,
    t11FcRscnInSwRscns                 Counter32,
    t11FcRscnOutSwRscns                Counter32,
    t11FcRscnScrRejects                Counter32,
    t11FcRscnRscnRejects               Counter32,
    t11FcRscnSwRscnRejects             Counter32,
    t11FcRscnInUnspecifiedRscns        Counter32,
    t11FcRscnOutUnspecifiedRscns       Counter32,
    t11FcRscnInChangedAttribRscns      Counter32,
    t11FcRscnOutChangedAttribRscns     Counter32,
    t11FcRscnInChangedServiceRscns     Counter32,
    t11FcRscnOutChangedServiceRscns    Counter32,
    t11FcRscnInChangedSwitchRscns      Counter32,
    t11FcRscnOutChangedSwitchRscns     Counter32,
    t11FcRscnInRemovedRscns            Counter32,
    t11FcRscnOutRemovedRscns           Counter32
}

t11FcRscnInScrs  OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
           "The number of SCRs received from Nx_Ports
           by this switch on this Fabric.

           This counter has no discontinuities other than
           those that all Counter32s have when sysUpTime=0."
    ::= { t11FcRscnStatsEntry 1 }

t11FcRscnInRscns  OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
           "The number of RSCNs received from Nx_Ports
           by this switch on this Fabric.

           This counter has no discontinuities other than
           those that all Counter32s have when sysUpTime=0."
    ::= { t11FcRscnStatsEntry 2 }

t11FcRscnOutRscns  OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current

DESCRIPTION

"The number of RSCNs transmitted to Nx_Ports
by this switch on this Fabric.

           This counter has no discontinuities other than
           those that all Counter32s have when sysUpTime=0."
    ::= { t11FcRscnStatsEntry 3 }

t11FcRscnInSwRscns  OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
           "The number of SW_RSCNs received by this switch from
           other switches on this Fabric.

           This counter has no discontinuities other than
           those that all Counter32s have when sysUpTime=0."
    ::= { t11FcRscnStatsEntry 4 }

t11FcRscnOutSwRscns  OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
           "The number of SW_RSCNs transmitted by this switch
           from other switches on this Fabric.

           This counter has no discontinuities other than
           those that all Counter32s have when sysUpTime=0."
    ::= { t11FcRscnStatsEntry 5 }

t11FcRscnScrRejects  OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
           "The number of SCRs rejected by this switch on
           this Fabric.

           This counter has no discontinuities other than
           those that all Counter32s have when sysUpTime=0."
    ::= { t11FcRscnStatsEntry 6 }

t11FcRscnRscnRejects OBJECT-TYPE

    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
           "The number of RSCNs rejected by this switch on this
           Fabric.
    
           This counter has no discontinuities other than
           those that all Counter32s have when sysUpTime=0."
    ::= { t11FcRscnStatsEntry 7 }

t11FcRscnSwRscnRejects  OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION
           "The number of SW_RSCN rejected by this switch on this
           Fabric.

           This counter has no discontinuities other than
           those that all Counter32s have when sysUpTime=0."
    ::= { t11FcRscnStatsEntry 8 }

t11FcRscnInUnspecifiedRscns  OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The number of Registered State Change Notifications
           (RSCNs) received by this switch on this Fabric which
           contained an RSCN Event Qualifier value of '0000'b
           meaning 'Event is not specified'.

           This counter has no discontinuities other than
           those that all Counter32s have when sysUpTime=0."
    REFERENCE
           "ANSI INCITS 433-2007, Fibre Channel - Link Services
          (FC-LS), July 2007, Table 36."
    ::= { t11FcRscnStatsEntry 9 }

t11FcRscnOutUnspecifiedRscns  OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The number of Registered State Change Notifications
           (RSCNs) sent by this switch on this Fabric which
           contained an RSCN Event Qualifier value of '0000'b
           meaning 'Event is not specified'.
           This counter has no discontinuities other than
           those that all Counter32s have when sysUpTime=0."
    REFERENCE
           "ANSI INCITS 433-2007, Fibre Channel - Link Services
          (FC-LS), July 2007, Table 36."
    ::= { t11FcRscnStatsEntry 10 }

t11FcRscnInChangedAttribRscns  OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The number of Registered State Change Notifications
           (RSCNs) received by this switch on this Fabric which
           contained an RSCN Event Qualifier value of '0002'b
           meaning 'Changed Port Attribute'.

           This counter has no discontinuities other than
           those that all Counter32s have when sysUpTime=0."
    REFERENCE
           "ANSI INCITS 433-2007, Fibre Channel - Link Services
          (FC-LS), July 2007, Table 36."
    ::= { t11FcRscnStatsEntry 11 }

t11FcRscnOutChangedAttribRscns  OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The number of Registered State Change Notifications
           (RSCNs) sent by this switch on this Fabric which
           contained an RSCN Event Qualifier value of '0002'b
           meaning 'Changed Port Attribute'.

           This counter has no discontinuities other than
           those that all Counter32s have when sysUpTime=0."
    REFERENCE
           "ANSI INCITS 433-2007, Fibre Channel - Link Services
          (FC-LS), July 2007, Table 36."
    ::= { t11FcRscnStatsEntry 12 }

t11FcRscnInChangedServiceRscns  OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The number of Registered State Change Notifications
           (RSCNs) received by this switch on this Fabric which

contained an RSCN Event Qualifier value of '0003'b meaning 'Changed Service Object'.

           This counter has no discontinuities other than
           those that all Counter32s have when sysUpTime=0."
    REFERENCE
           "ANSI INCITS 433-2007, Fibre Channel - Link Services
          (FC-LS), July 2007, Table 36."
    ::= { t11FcRscnStatsEntry 13 }

t11FcRscnOutChangedServiceRscns  OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The number of Registered State Change Notifications
           (RSCNs) sent by this switch on this Fabric which
           contained an RSCN Event Qualifier value of '0003'b
           meaning 'Changed Service Object'.

           This counter has no discontinuities other than
           those that all Counter32s have when sysUpTime=0."
    REFERENCE
           "ANSI INCITS 433-2007, Fibre Channel - Link Services
          (FC-LS), July 2007, Table 36."
    ::= { t11FcRscnStatsEntry 14 }

t11FcRscnInChangedSwitchRscns  OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The number of Registered State Change Notifications
           (RSCNs) received by this switch on this Fabric which
           contained an RSCN Event Qualifier value of '0004'b
           meaning 'Changed Switch Configuration'.

           This counter has no discontinuities other than
           those that all Counter32s have when sysUpTime=0."
    REFERENCE
           "ANSI INCITS 433-2007, Fibre Channel - Link Services
          (FC-LS), July 2007, Table 36."
    ::= { t11FcRscnStatsEntry 15 }

t11FcRscnOutChangedSwitchRscns  OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current

DESCRIPTION

"The number of Registered State Change Notifications (RSCNs) sent by this switch on this Fabric which contained an RSCN Event Qualifier value of '0004'b meaning 'Changed Switch Configuration'.

           This counter has no discontinuities other than
           those that all Counter32s have when sysUpTime=0."
    REFERENCE
           "ANSI INCITS 433-2007, Fibre Channel - Link Services
          (FC-LS), July 2007, Table 36."
    ::= { t11FcRscnStatsEntry 16 }

t11FcRscnInRemovedRscns  OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The number of Registered State Change Notifications
           (RSCNs) received by this switch on this Fabric which
           contained an RSCN Event Qualifier value of '0005'b
           meaning 'Removed Object'.

           This counter has no discontinuities other than
           those that all Counter32s have when sysUpTime=0."
    REFERENCE
           "ANSI INCITS 433-2007, Fibre Channel - Link Services
          (FC-LS), July 2007, Table 36."
    ::= { t11FcRscnStatsEntry 17 }

t11FcRscnOutRemovedRscns  OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
            "The number of Registered State Change Notifications
           (RSCNs) sent by this switch on this Fabric which
           contained an RSCN Event Qualifier value of '0005'b
           meaning 'Removed Object'.

           This counter has no discontinuities other than
           those that all Counter32s have when sysUpTime=0."
    REFERENCE
           "ANSI INCITS 433-2007, Fibre Channel - Link Services
          (FC-LS), July 2007, Table 36."
    ::= { t11FcRscnStatsEntry 18 }

--
-- Notification Control Table
--
t11FcRscnNotifyControlTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF T11FcRscnNotifyControlEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
           "A table of control information for notifications
           generated due to the rejection of an SCR or RSCN."
    ::= { t11FcRscnInformation 1 }

t11FcRscnNotifyControlEntry OBJECT-TYPE

    SYNTAX       T11FcRscnNotifyControlEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
           "Each entry contains notification control information
           concerning the rejection of RSCN/SCRs for a particular
           Fabric (identified by the value of t11FcRscnFabricIndex)
           by a particular switch (identified by values of
           fcmInstanceIndex and fcmSwitchIndex)."
    INDEX  { fcmInstanceIndex, fcmSwitchIndex, t11FcRscnFabricIndex }
    ::= { t11FcRscnNotifyControlTable 1 }

T11FcRscnNotifyControlEntry ::= SEQUENCE {
     t11FcRscnIlsRejectNotifyEnable     TruthValue,
     t11FcRscnElsRejectNotifyEnable     TruthValue,
     t11FcRscnRejectedRequestString     OCTET STRING,
     t11FcRscnRejectedRequestSource     FcNameIdOrZero,
     t11FcRscnRejectReasonCode          T11NsGs4RejectReasonCode,
     t11FcRscnRejectReasonCodeExp       OCTET STRING,
     t11FcRscnRejectReasonVendorCode    OCTET STRING
}

t11FcRscnIlsRejectNotifyEnable OBJECT-TYPE

    SYNTAX       TruthValue
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
           "This object specifies if a t11FcRscnIlsRejectReqNotify
           notification should be generated when this switch
           rejects an SW_RSCN on this Fabric.
    
           Values written to this object should be retained
           over agent reboots."
    DEFVAL { false }
    ::= { t11FcRscnNotifyControlEntry 1 }

t11FcRscnElsRejectNotifyEnable OBJECT-TYPE

    SYNTAX        TruthValue
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
           "This object specifies if a t11FcRscnElsRejectReqNotify
           notification should be generated when this switch
           rejects an RSCN or SCR on this Fabric.
    
           Values written to this object should be retained
           over agent reboots."
    DEFVAL { false }
    ::= { t11FcRscnNotifyControlEntry 2 }

t11FcRscnRejectedRequestString OBJECT-TYPE

    SYNTAX        OCTET STRING (SIZE (0..255))
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
           "The binary content of the RSCN, SCR, or SW_RSCN that
           was most recently rejected by this switch on this Fabric.
           The value is formatted as an octet string (in network
           byte order) as described in the relevant Fibre Channel
           standard, containing the payload (which is typically a
           list of affected ports and error codes) of the rejected
           RSCN or SCR as described in FC-LS, or the rejected
           SW_RSCN as described in FC-SW-4.
    
           This object contains the zero-length string if and when
           the RSCN/SCR/SW_RSCN payload is unavailable.  When the
           length of this object is 255 octets, it contains the
           first 255 octets of the payload (in network byte order)."
    REFERENCE
           "ANSI INCITS 433-2007, Fibre Channel - Link Services
           (FC-LS), July 2007, Tables 34 & 39.
    
           ANSI INCITS 418-2006, Fibre Channel - Switch Fabric - 4
           (FC-SW-4), December 2006, Table 45."
    ::= { t11FcRscnNotifyControlEntry 3 }

t11FcRscnRejectedRequestSource OBJECT-TYPE

    SYNTAX       FcNameIdOrZero
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
           "The WWN that was the source of the RSCN, SCR, or
           SW_RSCN that was most recently rejected by this switch
           on this Fabric."
    
    ::= { t11FcRscnNotifyControlEntry 4 }

t11FcRscnRejectReasonCode OBJECT-TYPE

    SYNTAX        T11NsGs4RejectReasonCode
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
           "This object contains the Reason Code of the most recent
           rejection by this switch of an RSCN, SCR or SW_RSCN on
           this Fabric."
    REFERENCE
           "ANSI INCITS 433-2007, Fibre Channel - Link Services
           (FC-LS), July 2007, Table 146.
    
           ANSI INCITS 418-2006, Fibre Channel - Switch Fabric - 4
           (FC-SW-4), December 2006, Table 5."
    ::= { t11FcRscnNotifyControlEntry 5 }

t11FcRscnRejectReasonCodeExp OBJECT-TYPE

    SYNTAX        OCTET STRING (SIZE(1))
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
           "This object contains the Reason Code Explanation
           of the most recent rejection by this switch of an
           RSCN, SCR or SW_RSCN on this Fabric."
    REFERENCE
           "ANSI INCITS 433-2007, Fibre Channel - Link Services
           (FC-LS), July 2007, Table 147.
    
           ANSI INCITS 418-2006, Fibre Channel - Switch Fabric - 4
           (FC-SW-4), December 2006, Table 6."
    ::= { t11FcRscnNotifyControlEntry 6 }

t11FcRscnRejectReasonVendorCode OBJECT-TYPE

    SYNTAX        OCTET STRING (SIZE(1))
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
           "This object contains the Reason Vendor Specific
           Code of the most recent rejection by this switch
           of an RSCN, SCR or SW_RSCN on this Fabric."
    REFERENCE
           "ANSI INCITS 433-2007, Fibre Channel - Link Services
           (FC-LS), July 2007, Table 148.
    
           ANSI INCITS 418-2006, Fibre Channel - Switch Fabric - 4
           (FC-SW-4), December 2006, Section 6.1.3."
    
    ::= { t11FcRscnNotifyControlEntry 7 }

-- Notifications

t11FcRscnElsRejectReqNotify NOTIFICATION-TYPE

    OBJECTS { t11FcRscnRejectedRequestString,
              t11FcRscnRejectedRequestSource,
              t11FcRscnRejectReasonCode,
              t11FcRscnRejectReasonCodeExp,
              t11FcRscnRejectReasonVendorCode }
    STATUS  current
    DESCRIPTION
           "This notification is generated when a switch rejects
           an SCR or RSCN.
    
           The value of t11FcRscnRejectedRequestString indicates the
           binary content of the rejected request if available, or
           the zero-length string otherwise.  The source of the
           rejected request is given by t11FcRscnRejectedRequestSource,
           and the reason for rejection is given by the values of
           t11FcRscnRejectReasonCode, t11FcRscnRejectReasonCodeExp
           and t11FcRscnRejectReasonVendorCode."
    ::= { t11FcRscnNotifications 1 }

t11FcRscnIlsRejectReqNotify NOTIFICATION-TYPE

    OBJECTS { t11FcRscnRejectedRequestString,
              t11FcRscnRejectedRequestSource,
              t11FcRscnRejectReasonCode,
              t11FcRscnRejectReasonCodeExp,
              t11FcRscnRejectReasonVendorCode }
    STATUS  current
    DESCRIPTION
           "This notification is generated when a switch rejects
           an SW_RSCN.
    
           The value of t11FcRscnRejectedRequestString indicates the
           binary content of the rejected request if available, or
           the zero-length string otherwise.  The source of the
           rejected request is given by t11FcRscnRejectedRequestSource,
           and the reason for rejection is given by the values of
           t11FcRscnRejectReasonCode, t11FcRscnRejectReasonCodeExp
           and t11FcRscnRejectReasonVendorCode."
    ::= { t11FcRscnNotifications 2 }

-- Conformance
t11FcRscnCompliances OBJECT IDENTIFIER ::= { t11FcRscnConformance 1 }
t11FcRscnGroups      OBJECT IDENTIFIER ::= { t11FcRscnConformance 2 }

t11FcRscnCompliance MODULE-COMPLIANCE

    STATUS    current
    DESCRIPTION
           "The compliance statement for entities that implement
           this MIB."
    MODULE
        MANDATORY-GROUPS { t11FcRscnRegistrationGroup,
                           t11FcRscnNotifyControlGroup,
                           t11FcRscnNotifyGroup }
    
    GROUP   t11FcRscnStatsGroup
    DESCRIPTION
            "These counters, containing RSCN-related statistics, are
            mandatory only for those systems that count such events."
    
    OBJECT       t11FcRscnIlsRejectNotifyEnable
    MIN-ACCESS   read-only
    DESCRIPTION
            "Write access is not required."
    
    OBJECT       t11FcRscnElsRejectNotifyEnable
    MIN-ACCESS   read-only
    DESCRIPTION
            "Write access is not required."
    
    ::= { t11FcRscnCompliances 1 }

-- Units of conformance

t11FcRscnRegistrationGroup  OBJECT-GROUP
    OBJECTS { t11FcRscnRegType }
    STATUS  current
    DESCRIPTION
           "A collection of objects for monitoring RSCN
           registrations."
    ::= { t11FcRscnGroups 1 }

t11FcRscnStatsGroup   OBJECT-GROUP
    OBJECTS { t11FcRscnInScrs,
              t11FcRscnInRscns,
              t11FcRscnOutRscns,
              t11FcRscnInSwRscns,
              t11FcRscnOutSwRscns,
              t11FcRscnScrRejects,
              t11FcRscnRscnRejects,
              t11FcRscnSwRscnRejects,
              t11FcRscnInUnspecifiedRscns,
              t11FcRscnOutUnspecifiedRscns,
              t11FcRscnInChangedAttribRscns,
              t11FcRscnOutChangedAttribRscns,
              t11FcRscnInChangedServiceRscns,
              t11FcRscnOutChangedServiceRscns,
              t11FcRscnInChangedSwitchRscns,
              t11FcRscnOutChangedSwitchRscns,
              t11FcRscnInRemovedRscns,
              t11FcRscnOutRemovedRscns
            }
    STATUS  current
    DESCRIPTION
           "A collection of objects for collecting RSCN-related
           statistics."
    ::= { t11FcRscnGroups 2 }

t11FcRscnNotifyControlGroup  OBJECT-GROUP
    OBJECTS { t11FcRscnIlsRejectNotifyEnable,
              t11FcRscnElsRejectNotifyEnable,
              t11FcRscnRejectedRequestString,
              t11FcRscnRejectedRequestSource,
              t11FcRscnRejectReasonCode,
              t11FcRscnRejectReasonCodeExp,
              t11FcRscnRejectReasonVendorCode
            }
    STATUS  current
    DESCRIPTION
           "A collection of notification control and
           notification information objects."
    ::= { t11FcRscnGroups 3 }

t11FcRscnNotifyGroup   NOTIFICATION-GROUP
    NOTIFICATIONS { t11FcRscnIlsRejectReqNotify,
                    t11FcRscnElsRejectReqNotify
                  }
    STATUS        current
    DESCRIPTION
           "A collection of notifications for monitoring
           ILS and ELS rejections by the RSCN module."
    ::= { t11FcRscnGroups 4 }

END

7. IANA Considerations

IANA has assigned a MIB OID for the T11-FC-RSCN-MIB module under the appropriate subtree.

8. Security Considerations

There are a number of management objects defined in this MIB module with a MAX-ACCESS clause of read-write and/or read-create. Such objects may be considered sensitive or vulnerable in some network environments. The support for SET operations in a non-secure environment without proper protection can have a negative effect on network operations. These objects and their sensitivity/vulnerability are:

t11FcRscnIlsRejectNotifyEnable t11FcRscnElsRejectNotifyEnable

          -- ability to enable/disable a notification; these object, if
             misconfigured, would either generate unwanted notifications
             or suppress wanted notifications.

Some of the readable objects in this MIB module (i.e., objects with a MAX-ACCESS other than not-accessible) may also be considered sensitive or vulnerable in some network environments. It is thus important to control even GET and/or NOTIFY access to these objects and possibly to even encrypt the values of these objects when sending them over the network via SNMP. These are the tables and objects and their sensitivity/vulnerability:

t11FcRscnRegTable -- contains a list of Nx_Ports that are currently registered to received RSCNs.

t11FcRscnStatsTable -- contains RSCN-related statistics.

t11FcRscnNotifyControlTable -- contains control and logging

information for notifications that are concerned with the

rejection of RSCN-related requests.

SNMP versions prior to SNMPv3 did not include adequate security. Even if the network itself is secure (for example by using IPsec), even then, there is no control as to who on the secure network is allowed to access and GET/SET (read/change/create/delete) the objects in this MIB module.

It is RECOMMENDED that implementors consider the security features as provided by the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms (for authentication and privacy).

Further, deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to enable cryptographic security. It is then a customer/operator responsibility to ensure that the SNMP entity giving access to an instance of this MIB module is properly configured to give access to the objects only to those principals (users) that have legitimate rights to indeed GET or SET (change/create/delete) them.

9. Acknowledgements

This document was originally developed and approved by the INCITS Task Group T11.5 (http://www.t11.org) as the SM-RSCNM project. We wish to acknowledge the many contributions and comments from the INCITS Technical Committee T11, especially from the following:

T11 Chair: Robert Snively, Brocade
T11 Vice Chair: Claudio DeSanti, Cisco Systems
T11.5 Chair: Roger Cummings, Symantec
T11.5 Vice Chair: Scott Kipp, McData
and T11.5 members.

   The document was subsequently a work item of the IETF's IMSS Working
   Group, chaired by David Black (EMC Corporation).   We thank Bert
   Wijnen (Lucent Technologies) for his thorough review of the document.
   We also wish to acknowledge Dan Romascanu (Avaya), the IETF Area
   Director, for his comments and assistance.

10. Normative References

   [RFC2578]  McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
              Rose, M. and S. Waldbusser, "Structure of Management
              Information Version 2 (SMIv2)", STD 58, RFC 2578, April
              1999.
   
   [RFC2579]  McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
              Rose, M. and S. Waldbusser, "Textual Conventions for
              SMIv2", STD 58, RFC 2579, April 1999.
   
   [RFC2580]  McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
              Rose, M. and S. Waldbusser, "Conformance Statements for
              SMIv2", STD 58, RFC 2580, April 1999.
   
   [RFC3411]  Harrington, D., Presuhn, R., and B. Wijnen, "An
              Architecture for Describing Simple Network Management
              Protocol (SNMP) Management Frameworks", STD 58, RFC 3411,
              December 2002.
   
   [IF-MIB]   McCloghrie, K. and F. Kastenholz, "The Interfaces Group
              MIB", RFC 2863, June 2000.
   
   [RFC4044]  McCloghrie, K., "Fibre Channel Management MIB", RFC 4044,
              May 2005.
   
   [RFC4438]  DeSanti, C., Gaonkar, V., Vivek, H.K., McCloghrie, K., and
              S. Gai, "Fibre Channel Name Server MIB", RFC 4438, March
              2006.
   
   [RFC4439]  DeSanti, C., Gaonkar, V., McCloghrie, K., and S. Gai,
              "Fibre Channel Fabric Address Manager MIB", RFC 4439,
              March 2006.
   
   [FC-SW-4]  "Fibre Channel - Switch Fabric - 4 (FC-SW-4)", ANSI INCITS
              418-2006, http://www.t11.org/t11/stat.nsf/upnum/1674-d,
              December 2006.
   
   [FC-FS]    "Fibre Channel - Framing and Signaling (FC-FS)", ANSI
              INCITS 373-2003,
              http://www.t11.org/t11/stat.nsf/upnum/1331-d, April 2003.
   
   [FC-LS]    "Fibre Channel - Link Services (FC-LS)", ANSI INCITS
              433-2007, http://www.t11.org/t11/stat.nsf/upnum/1620-d,
              July 2007.
   
   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

11. Informative References

   [RFC2741]  Daniele, M., Wijnen, B., Ellison, M., and D. Francisco,
              "Agent Extensibility (AgentX) Protocol Version 1", RFC
              2741, January 2000.
   
   [RFC2837]  Teow, K., "Definitions of Managed Objects for the Fabric
              Element in Fibre Channel Standard", RFC 2837, May 2000.
   
   [RFC3410]  Case, J., Mundy, R., Partain, D., and B. Stewart,
              "Introduction and Applicability Statements for Internet-
              Standard Management Framework", RFC 3410, December 2002.

Authors' Addresses

Claudio DeSanti
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134 USA
Phone: +1 408 853-9172
EMail: cds@cisco.com

   H.K. Vivek
   Cisco Systems, Inc.
   71 Millers Rd
   Bangalore, India
   Phone: +91 80 2289933x5117
   EMail: hvivek@cisco.com

Keith McCloghrie
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134 USA
Phone: +1 408 526-5260
EMail: kzm@cisco.com

Silvano Gai
Nuova Systems
3 West Plumeria Drive
San Jose, CA 95134
Phone: +1 408 387-6123
EMail: sgai@nuovasystems.com

Full Copyright Statement

Copyright © The IETF Trust (2007).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.