RFC 4983

Fibre Channel Registered State Change Notification (RSCN) MIB

πŸ“… published August 2007, from ietf

RFC 4983: Fibre Channel Registered State Change Notification (RSCN) MIB ✨

okay so bestie, this is RFC 4983 πŸ¦‹ It's a Standards Track doc from the Network Working Group, dated August 2007. The authors are C. DeSanti, H.K. Vivek, and K. McCloghrie from Cisco Systems, plus S. Gai from Nuova Systems. The header doesn't say it obsoletes or updates anything, so it stands on its own πŸ’…


Status of This Memo

okay so this doc is an Internet standards track protocol for the Internet community 🌸 It's asking for discussion and suggestions for improvements. If you want to know where this protocol sits in the standardization process, check the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited, so share it with everyone πŸ’œ

Abstract

this memo defines a chunk of the Management Information Base (MIB) for network management protocols in the Internet community ✨ Specifically, it describes managed objects for managing Fibre Channel's Registered State Change Notifications (RSCNs). It's giving very organized vibes πŸŽ€

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 ✨

okay so this memo defines a piece of the Management Information Base (MIB) for network management protocols in the Internet community πŸ’– It's about managed objects for info related to Registered State Change Notifications (RSCNs) [FC-LS] in a Fibre Channel network. That includes which Nx_Ports are registered to get which types of RSCNs, how Simple Network Management Protocol (SNMP) notifications on registration failures get controlled and generated, 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 doc 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]. these words are the whole vocab for how strong each rule is, so read them carefully πŸ”₯

2. The Internet-Standard Management Framework ✨

if you want the deep dive on the docs that describe the current Internet-Standard Management Framework, go to section 7 of RFC 3410 [RFC3410] 🧚

managed objects are accessed through a virtual information store called 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 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 ✨

okay so Fibre Channel (FC) is logically a bidirectional point-to-point serial data channel, and it's built for high performance πŸ”₯ It gives a general transport for higher-level protocols like Small Computer System Interface (SCSI) command sets, High-Performance Parallel Interface (HIPPI) data framing, IP (Internet Protocol), IEEE 802.2, and more πŸ¦‹

physically, Fibre Channel is an interconnection of multiple communication points called N_Ports. They connect either through a switching network called a Fabric, or through a point-to-point link 🌈 A Fibre Channel "node" is one or more N_Ports. A Fabric may have multiple Interconnect Elements, and some of them are switches. An N_Port connects to the Fabric through a port on a switch called an F_Port. When several FC nodes plug into one switch port through an "Arbitrated Loop" topology, that switch port is an FL_Port, and the nodes' ports are NL_Ports. Nx_Port is the umbrella term for either an N_Port or an NL_Port. Fx_Port is the umbrella term for either an F_Port or an FL_Port 🧚

a switch port that links to another switch port over an Inter-Switch Link (ISL) is called an E_Port πŸ’œ A B_Port connects a bridge device to an E_Port on a switch. It gives you a subset of E_Port functionality, so it's a little less extra πŸ™ˆ

a lot of Fibre Channel components have globally unique names, including the fabric, each node, and most ports 🌸 These are usually formatted as World Wide Names (WWNs). You can find more on WWNs in [FC-FS]. WWNs are expected to persist across agent and unit resets 🫢

Fibre Channel frames carry 24-bit address identifiers that show the frame's source and destination ports. Each FC port has both an address identifier and a WWN. When a fabric is in use, a switch dynamically assigns the FC address identifiers. Each octet of a 24-bit address is one level in an address hierarchy, and the Domain_ID is the highest level πŸ‘‘

now the main event: Registered State Change Notifications (RSCNs) are defined in [FC-LS] so that Nx_Ports registered to receive them get a timely heads-up when the state of nodes attached to the fabric changes 🚨 An Nx_Port can register with a State Change Registration (SCR) request [FC-LS] to receive RSCNs. When an event happens that may affect a registered Nx_Port's port state, that registered Nx_Port receives an RSCN πŸ’– For example, an Nx_Port can use RSCNs to find out about failures of other nodes, new devices coming online, or more network-accessible storage becoming available. The payload of the RSCN tells you 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 one (and send it to the fabric) if it detects an event the fabric can't see πŸ”₯ The sender of an RSCN may coalesce several events into one RSCN message. Each RSCN is a "request" that the receiver acknowledges with an accept or a reject πŸ’…

an Nx_Port receives an RSCN from the Fabric as an Extended Link Service (ELS) request [FC-LS] πŸ¦‹ The Fabric passes 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 registered for RSCNs, it converts received SW_RSCNs (SW_ILS frames containing SW_RSCN payloads) into ELS requests with the matching RSCN, and sends those to each such Nx_Port 🌈

the latest standard for an interconnecting Fabric with multiple Fabric Switch elements is [FC-SW-4] πŸ‘‘ [FC-SW-4] keeps the earlier spec for operating a single Fabric in a physical infrastructure, and adds Virtual Fabrics plus how multiple Virtual Fabrics can run on one (or more) physical infrastructures ✨ Virtual Fabrics let each frame be tagged in its header to show which of several Virtual Fabrics it's sent on. All frames entering a particular "Core Switch" [FC-SW-4] (a physical switch) on the same Virtual Fabric get processed by the same "Virtual Switch" inside that Core Switch 🧚

4. Relationship to Other MIBs πŸŽ€

the first standardized MIB for Fibre Channel [RFC2837] focused on Fibre Channel switches πŸ“ It was replaced by the more generic Fibre Channel Management MIB [RFC4044], which defines basic info for Fibre Channel hosts and switches. It also includes extensions to the standard [IF-MIB] for Fibre Channel interfaces. [RFC4044] specifies 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 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 πŸ”₯ You can group Fibre Channel functionality into management instances in whatever way is most convenient for the implementation(s). For example, one grouping has a single SNMP agent with multiple AgentX [RFC2741] sub-agents, where each sub-agent implements a different Fibre Channel management instance 🧚

the object fcmInstanceIndex is IMPORTed from the FC-MGMT-MIB [RFC4044] as the index value that uniquely identifies 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 info about Fibre Channel switches 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 that uniquely identifies a Fibre Channel switch among the (one or more) switches managed by the same Fibre Channel management instance πŸŽ€

5.3. Fabric Index ✨

okay so whether a device is chilling on a Physical Fabric (no Virtual Fabrics) or living inside a Virtual Fabric, RSCNs work the exact same way in each Fabric πŸ’… so this MIB puts all the Fabric-related info into tables that are INDEXed by an arbitrary integer called a "Fabric Index". its syntax gets IMPORTed from the T11-TC-MIB [RFC4439] πŸŽ€ if a device is connected to one single Physical Fabric with zero Virtual Fabrics, the Fabric Index is always gonna be 1. but when you've got multiple Virtual and/or Physical Fabrics, this index is how you tell one Fabric apart from another πŸ¦‹

it's quite possible, and honestly maybe even likely, that a Fibre Channel switch has ports hooked up to multiple Virtual and/or Physical Fabrics 🌸 so to make a management protocol query about all the Fabrics one switch is connected to easier, fcmSwitchIndex gets listed before t11FcRscnFabricIndex whenever they both show up in the same INDEX clause ✨ main character energy for the switch index, no cap.

5.4. The t11FcRscnRegistrationGroup Group πŸ’–

this group is all about the Nx_Ports that have registered to receive RSCNs 🫢

5.5. The t11FcRscnNotifyGroup Group πŸ””

this group has two notifications πŸ‘‘ one gets generated when a switch rejects an SCR or RSCN, and the other one gets generated when a switch rejects an SW_RSCN. two rejections, two alarms, iconic.

5.5.1. Flow-Control for Notifications

okay so when you're defining SNMP notifications for events that happen in the data-plane, you have to think about how often they could fire 😭 unless there's some limiting factor, these notifications need to be flow-controlled somehow. like, after some maximum number have shown up within a set time interval, any further ones get suppressed for some later time interval πŸ™ˆ

but here's the tea: when suppression happens, the Network Management System (NMS) that didn't get the notifications (because they were suppressed) still needs a way to find out how many got suppressed πŸ’€ so an extra Counter32 object needs to be defined, and/or a brand new type of notification needs to be defined for use at the end of the interval. yes it's extra complexity, but it's necessary for notifications that need flow-control, periodt πŸ’…

now the contrast πŸ¦‹ for notifications like both of the ones in this MIB module, which get generated because of control-plane events (and are not able to start a chain reaction), the extra complexity of flow-controlling them is not warranted. not every notification needs the whole glam squad 🧚

5.6. The t11FcRscnNotifyControlGroup Group πŸŽ›οΈ

this group has one object for each notification in the t11FcRscnNotifyGroup group, so you can enable or disable that notification 🌈 it also has three objects that record info 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 πŸ“ it's the rejection diary, lowkey iconic.

5.7. The t11FcRscnStatsGroup Group πŸ“Š

this group is all the RSCN-related statistics πŸ’œ there are two levels of stats:

  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 for each different category of sent/received RSCNs, where the categories are indicated by different values of the 'Event Qualifier' contained in an RSCN message. note that if and when several RSCN events get coalesced into a single RSCN message, that message may be counted in more than one of these counters πŸ“ also, no counters are defined in this MIB for the 'Event Qualifier' value of '0001'b (meaning "Changed Name Server Object") because those RSCNs are already counted by the t11NsInRscns and t11NsOutRscns objects defined in [RFC4438]. they've already got their own spot, bestie 🫢

6. Definitions 🧚

6.1. The T11-FC-RSCN-MIB Module 🌸

here's the whole module, copied exactly so the code stays perfect πŸ’…

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 (C) 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
}

Okay bestie, the counters keep coming, and every single one follows the same pattern πŸ’… Each one is a read-only Counter32 that starts at zero when sysUpTime is zero, and each one counts something different that happens on this Fabric πŸ“Š

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 already handed this MIB module its very own MIB OID under the appropriate subtree. Iconic behaviour from IANA, honestly πŸ¦‹


8. Security Considerations πŸ”

Okay bestie, this part is SERIOUS, so read it with your full attention πŸ’… There are a bunch of management objects in this MIB module that are read-write and/or read-create, which means they can be changed or created through SET operations. Those objects can be sensitive or vulnerable in some network environments. Doing SET operations in a non-secure environment without proper protection can seriously mess with network operations. The objects in question, and why they're sensitive, 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 (the ones with a MAX-ACCESS other than not-accessible) can also be sensitive or vulnerable in some environments πŸ‘€ So it's important to control even GET and/or NOTIFY access to them, and possibly even encrypt their values when they're sent over the network via SNMP. Here are the tables and objects, plus their sensitivity:

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.

Real talk: SNMP versions before SNMPv3 didn't include adequate security πŸ’€ Even if the network itself is locked down (for example by using IPsec), there's still no control over who on that secure network gets to GET/SET (read/change/create/delete) the objects in this MIB module. Not it πŸ™ˆ

It is RECOMMENDED that implementors check out the security features in the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms (for authentication and privacy). Main character energy for security πŸ›‘οΈ

Further, deploying SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and turn on cryptographic security. It is then the customer/operator's responsibility to make sure the SNMP entity giving access to an instance of this MIB module is configured so that only the principals (users) with legitimate rights can GET or SET (change/create/delete) those objects. Lock it down, babe πŸ”’βœ¨


9. Acknowledgements 🫢

This document was first developed and approved by the INCITS Task Group T11.5 (http://www.t11.org) as the SM-RSCNM project. Huge thanks to everyone in INCITS Technical Committee T11 who sent in contributions and comments, especially these legends:

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.

Later, the document became a work item of the IETF's IMSS Working Group, chaired by David Black (EMC Corporation). Big thanks to Bert Wijnen (Lucent Technologies) for his thorough review πŸ‘‘ We also want to shout out Dan Romascanu (Avaya), the IETF Area Director, for his comments and help 🌈

10. Normative References πŸ“š

okay bestie, these are the docs this spec leans on directly, so they're the ones you'd want open next to it 🧚

  • [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 🌸

these ones are more like bonus reading. handy background, not required to get the core ideas πŸ’œ

  • [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 πŸŽ€

these are the people who wrote it, aka the girls who made this happen πŸ‘‘

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

okay, the legal stuff, but make it cute πŸ’… the copyright is held by the IETF Trust, dated 2007.

this document is subject to the rights, licenses and restrictions in BCP 78, and except as set forth there, the authors keep all their rights.

the lawyers want the disclaimer kept word for word, so here it is exactly as written 🫢

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 doesn't take a side on whether any IP rights covering this tech are valid or how wide they are, and it isn't saying licenses are or aren't available. it also hasn't done its own search for those rights. the procedures for rights in RFC documents live in BCP 78 and BCP 79 🌈

copies of IPR disclosures sent to the IETF Secretariat, plus any licence assurances, or the outcome of anyone trying to get a general licence or permission to use those proprietary rights, can be found in the IETF's online IPR repository at http://www.ietf.org/ipr ✨

the IETF also invites anyone who's aware of copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to implement this standard to tell it about them. send that to ietf-ipr@ietf.org πŸ’–

πŸ“¦ where this page comes from