RFC 4404

Definitions of Managed Objects for Fibre Channel Over TCP/IP (FCIP)

πŸ“… published February 2006, from ietf

RFC 4404: Definitions of Managed Objects for Fibre Channel Over TCP/IP (FCIP) πŸŽ€

Okay bestie, let's get the vibes straight first πŸ’…. This is RFC 4404 from the Network Working Group, and it's a Standards Track doc, so it's an actual Internet standard ✨. It came out in February 2006. The authors are R. Natarajan (F5 Networks) and A. Rijhsinghani (Accton Technology Corporation). The header doesn't list anything it obsoletes or updates, so no drama there 🫢.

Status of This Memo πŸ“œ

This document is an Internet standards track protocol for the Internet community, and it's basically asking for discussion and suggestions for improvements πŸ¦‹. If you want the current standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1). And the big news is that distribution of this memo is unlimited, so go share it πŸ’œ.

Copyright (C) The Internet Society (2006). That's the legal tea, bestie β˜•.

Abstract ✨

This memo defines a chunk of the Management Information Base (MIB) that network management protocols use in TCP/IP-based internets 🧚. Specifically, it defines the objects you need to manage Fibre Channel Over TCP/IP (FCIP) entities. Those are the things that connect Fibre Channel (FC) fabrics with IP networks, and honestly it's giving bridge energy πŸŒ‰.

Table of Contents πŸ—‚οΈ

1. The Internet-Standard Management Framework ......................2
2. Overview of FCIP Management Model ...............................2
3. Relationship to Other MIBs ......................................4
4. MIB Definitions .................................................6
5. Security Considerations ........................................29
6. IANA Considerations ............................................30
7. Acknowledgements ...............................................30
8. Normative References ...........................................30
9. Informative References .........................................31

1. The Internet-Standard Management Framework ✨

If you want the full tea on the current Internet-Standard Management Framework, check out section 7 of RFC 3410 [RFC3410] πŸ“š.

Managed objects live in a virtual information store called the Management Information Base, or MIB πŸ—„οΈ. You usually reach MIB objects through the Simple Network Management Protocol (SNMP) πŸ“‘. The objects get defined using the mechanisms in the Structure of Management Information (SMI) 🧩. This memo gives you a MIB module that's compliant with SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580] πŸ’–.

2. Overview of FCIP Management Model πŸ¦‹

Quick heads up: the Fibre Channel Over TCP/IP (FCIP) Entity is fully described from a functional point of view in [RFC3821] πŸ“–. A bunch of FCIP Entities plus their matching FC Entities (described in [FCBB2]), all living inside one SNMP Context, is what this doc calls an FCIP device πŸŽ€. This section looks at FCIP from the management side, so let's go πŸ”₯.

     +------------------------------------------+
     | FCIP Device                              |
     |                                          |
     |   +-----------+       +-----------+      |
     |   |FCIP Entity|       |FCIP Entity|      |
     |   |           |       |           |      |
     |   |           |       |           |      |
     |   +--+--+--+--+       +--+--+--+--+      |
     |      |  |  |             |  |  |         |
     |      |  |  |             |  |  |         |
     |     FCIP Links         FCIP Links        |
     |                                          |
     +------------------------------------------+

The FCIP device gives you an IP-based interconnection model for linking up FC fabric elements 🌸. In this model, the FCIP devices plus the IP network they run on together make up a brand new FCIP transport network πŸš€.

This IP-based FCIP Interconnection Model supports the following topology:

  • The FCIP-based transport network is formed by interconnecting the FCIP devices.
  • Each FCIP device has one or more FCIP Entities or Instances.
  • Peer FCIP Entities are connected by FCIP Links attached to VE_ports/B_Access.
  • Each FCIP Link Endpoint contains one or more Data Engines.
  • The FCIP device can work as a stand-alone box or as part of a FC fabric element.

Each FCIP Entity managed by this MIB is called an FCIP Instance 🧚. Here's how the MIB is broken up:

2.1. FCIP Entity Instances Table πŸ“

This table holds info about the entity's existing instances of FCIP entities πŸ“‹.

This one has the info about this FCIP device's existing FCIP links ⭐.

2.3. FCIP TCP Connection Table 🧡

This table has info about existing TCP connections πŸ’œ. Each FCIP link inside an FCIP entity has one or more TCP connections. The FCIP entity uses a Data Engine for each TCP connection to handle FC frame encapsulation, de-encapsulation, and transmission of FCIP frames on that connection. It's a whole choreography, bestie πŸ’ƒ.

2.4. FCIP Dynamic Route Table πŸ›£οΈ

This table holds routing info that the FCIP device finds dynamically πŸ”. The FCIP device may use the SLPv2 protocol [RFC3822] together with other protocols, such as Fabric Shortest Path First (FSPF), to dynamically discover other FCIP entities and fill this table in. That way it can map destination domains to FCIP Links πŸ—ΊοΈ.

2.5. FCIP Static Route Table πŸ“Œ

This table has routing info that the Network Admin configures by hand into the FCIP device πŸ› οΈ. When there's no dynamic discovery of remote FCIP entities, the Network Manager can set up remote domains and FCIP Entities that this device can reach in this table πŸ™Œ.

Both the static and dynamic routing tables can be active at any point in time πŸ’…. If a DID shows up in both tables, the static route table wins for that DID, so it takes precedence over the dynamic entry ✨. Main character energy for the static table, no cap πŸ‘‘.

2.6. FCIP Discovery Domain Table 🧭

This table maps this device's FCIP Entities into FCIP Discovery Domains πŸ—‚οΈ.

The FCIP Link Errors Table has counters that show error conditions on an FCIP Link 😭.

3. Relationship to Other MIBs 🌸

Objects you can reach through other MIB modules that apply to FCIP devices are NOT included in this MIB module πŸ™ˆ. Wait, correction: they have not been included here, and the following subsections list all the applicable MIB modules that should be present alongside FCIP-MGMT-MIB πŸ’–.

3.1. Relationship to the 'TCP' Group 🧢

This group is mandatory for all systems that implement TCP. Objects relevant to TCP must be obtained from this group [RFC4022] πŸ“Ž.

3.2. Relationship to the 'interfaces' MIB πŸ”Œ

The 'interfaces' group is defined as mandatory for all systems, and it holds info about an entity's interfaces 🧩. Each logical/virtual interface created as an FCIP Link should be represented as a row in the ifTable, with a unique ifIndex value and an ifType of 'fcipLink' (224) for each interface. For the full list of interface types, check the IANA registry at http://www.iana.org/assignments/smi-numbers πŸ¦‹. These are the only ifIndex values that matter to an FCIP Entity, because FCIP runs on top of TCP/IP 🌈.

FCIP runs over TCP. So, by definition, there's no ifTable interface sitting directly beneath it, which means ifStackLowerLayer is always 0 πŸ™ƒ. For any protocol using FCIP (that is, above FCIP), FCIP looks like a regular FC interface ✨. As stated in [RFC4044], a regular "FC interface will typically have no other ifTable rows stacked on top of it", so ifStackHigherLayer is typically zero πŸŽ€.

3.3. Relationship to the Fibre Channel Management MIB 🧠

The Fibre Channel Management MIB [RFC4044] is assumed for FC functionality managed objects πŸ’….

3.4. Specific Interface Group MIB Objects 🎯

This table gives specific implementation guidelines for applying the objects defined in the Interfaces Group MIB to FCIP Links πŸ“. For any object not listed here, check its generic definition in [RFC2863] πŸ”.

 Object                   Guidelines

ifType                   'fcipLink' (224)

ifSpeed                  The ifSpeed for the physical interface(s)
                         over which the FCIP Link runs.

ifPhysAddress            There is no physical address corresponding
                         to an FCIP Link (only World Wide Name, WWN).
                         Reported as 0.

ifAdminStatus            Write access is not required, and support
                         for 'testing' is not required.

ifOperStatus             Support for 'testing' is not required.
                         The value 'dormant' has no meaning for
                         FCIP Links.

ifInOctets               The number of octets of FCIP information
ifHCInOctets             contained in received frames in TCP
                         streams, starting with FCIP header.

ifInUcastPkts            The number of FCIP frames received
ifHCInUcastPkts          on this FCIP Link.

ifOutOctets              The number of octets of FCIP information
ifHCOutOctets            contained in transmitted frames in TCP
                         streams, starting with FCIP header.

ifOutUcastPkts           The number of FCIP frames transmitted
ifHCOutUcastPkts         on this FCIP Link.

ifInMulticastPkts        These counters are not incremented.
ifInBroadcastPkts
ifOutMulticastPkts
ifOutBroadcastPkts
ifHCInMulticastPkts
ifHCInBroadcastPkts
ifHCOutMulticastPkts
ifHCOutBroadcastPkts

ifLinkUpDownTrapEnable   Default is 'disabled'.

ifPromiscuousMode        This will be 'false'.

ifConnectorPresent       This will be 'false'.

Part 1 wraps here, bestie 🧚. Next up is Section 4, the MIB Definitions module, and it's where all the actual OBJECT-TYPE magic lives πŸ’œ. Stay tuned!

Okay bestie, the MIB is where the magic really happens 🧚 Here are the textual conventions first, the little type definitions everything else leans on πŸ’…

   -- ******************************************************************
   -- Textual conventions
   --

   FcipDomainIdInOctetForm ::= TEXTUAL-CONVENTION
       STATUS    current
       DESCRIPTION
           "The Domain ID of a FC entity in octet form
            to support the concatenation(000000h||Domain_ID)
            format defined in the FSPF routing protocol."
       REFERENCE
           "FC-SW-3 section 4.8"
       SYNTAX    OCTET STRING (SIZE(1))

   FcipEntityMode ::= TEXTUAL-CONVENTION
       STATUS current
       DESCRIPTION
           "The type of port mode provided by an FCIP Entity
            for an FCIP Link.  An FCIP Entity can be an E-Port
            mode for one of its FCIP Link Endpoints or a B-Port
            mode for another of its FCIP Link Endpoints."
       REFERENCE
           "FC-BB, rev 4.7, 2 May 1997, section 3."
       SYNTAX INTEGER {
                   ePortMode(1),
                   bPortMode(2)
                      }

   FcipEntityId  ::= TEXTUAL-CONVENTION
       STATUS current
       DESCRIPTION
           "The FCIP entity identifier as defined in RFC 3821."
       REFERENCE
           "RFC 3821, Section 7.1, FCIP Special Frame Format"
       SYNTAX OCTET STRING (SIZE(8))

Next up is the FCIP group, which holds the global scalar objects that only apply to FCIP devices ✨

   -- ******************************************************************
   -- The FCIP group
   --
   -- This group defines the global scalar objects applicable to FCIP
   -- devices only
   --

   fcipDynIpConfType   OBJECT-TYPE
       SYNTAX INTEGER {
                   slpv2(1),
                   none(2)
       }
       MAX-ACCESS read-write
       STATUS current
       DESCRIPTION
           "The type of discovery protocol used to discover remote
            FCIP entities.  The value of this object is persistent
            across system restarts."
       ::= { fcipConfig 1 }

   fcipDeviceWWN   OBJECT-TYPE
       SYNTAX FcNameIdOrZero
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "The World Wide Name of this FCIP device."
       ::= { fcipConfig 2 }

   fcipEntitySACKOption   OBJECT-TYPE
       SYNTAX INTEGER {
                   enabled(1),
                   disabled(2)
       }
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "Indication of whether the TCP Selective Acknowledgement
            Option is enabled at this FCIP device to let the receiver
            acknowledge multiple lost packets in a single ACK for faster
            recovery."
       REFERENCE
           "The Selective Ack option is defined in RFC 2883."
       ::= { fcipConfig 3 }

Now the FCIP Entity Table, which is basically the guest list of FCIP entities on the device πŸŽ€

   -- ******************************************************************
   -- The FCIP Entity Table
   --

   fcipEntityInstanceTable OBJECT-TYPE
       SYNTAX SEQUENCE OF FcipEntityInstanceEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "Information about this FCIP device's existing instances of
            FCIP entities."
       REFERENCE
           "RFC 3821, Section 5.4, FCIP Entity"
       ::= { fcipConfig 4 }

   fcipEntityInstanceEntry OBJECT-TYPE
       SYNTAX FcipEntityInstanceEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "A conceptual row of the FCIP entity table with information
            about a particular FCIP entity.  Once a row has been
            created, it is non-volatile across agent restarts until it
            is deleted."
       INDEX { fcipEntityId }
       ::= { fcipEntityInstanceTable 1 }

   FcipEntityInstanceEntry ::=
       SEQUENCE {
                   fcipEntityId                  FcipEntityId,
                   fcipEntityName                SnmpAdminString,
                   fcipEntityAddressType         InetAddressType,
                   fcipEntityAddress             InetAddress,
                   fcipEntityTcpConnPort         InetPortNumber,
                   fcipEntitySeqNumWrap          TruthValue,
                   fcipEntityPHBSupport          TruthValue,
                   fcipEntityStatus              RowStatus
              }

   fcipEntityId   OBJECT-TYPE
       SYNTAX FcipEntityId
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "The FCIP entity identifier."
       REFERENCE
           "RFC 3821, Section 7.1, FCIP Special Frame Format"
       ::= { fcipEntityInstanceEntry 1 }

   fcipEntityName   OBJECT-TYPE
       SYNTAX SnmpAdminString (SIZE (0..32))
       MAX-ACCESS read-create
       STATUS current
       DESCRIPTION
           "An administratively-assigned name for this FCIP entity."
       ::= { fcipEntityInstanceEntry 2 }

   fcipEntityAddressType   OBJECT-TYPE
       SYNTAX InetAddressType
       MAX-ACCESS read-create
       STATUS current
       DESCRIPTION
           "The type of Internet address by which the entity is
            reachable.  Only address types IPv4 and IPv6 are supported."
       ::= { fcipEntityInstanceEntry 3 }

   fcipEntityAddress   OBJECT-TYPE
       SYNTAX InetAddress
       MAX-ACCESS read-create
       STATUS current
       DESCRIPTION
           "The Internet address for the entity, if configured.  The
            format of this address is determined by the value of the
            fcipEntityAddressType object."
       ::= { fcipEntityInstanceEntry 4 }

   fcipEntityTcpConnPort   OBJECT-TYPE
       SYNTAX InetPortNumber
       MAX-ACCESS read-create
       STATUS current
       DESCRIPTION
           "A TCP port other than the FCIP Well-Known port on which the
            FCIP entity listens for new TCP connection requests.  It
            contains the value zero(0) if the FCIP Entity only listens
            on the Well-Known port."
       DEFVAL  { 0 }
       ::= { fcipEntityInstanceEntry 5 }

   fcipEntitySeqNumWrap   OBJECT-TYPE
       SYNTAX TruthValue
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "An indication of whether the FCIP Entity supports protection
            against sequence number wrap."
       REFERENCE
           "The PAWS option is defined in RFC 1323."
       ::= { fcipEntityInstanceEntry 6 }

   fcipEntityPHBSupport   OBJECT-TYPE
       SYNTAX TruthValue
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "An indication of whether the FCIP Entity supports PHB IP
            quality of service (QoS)."
       REFERENCE
           "Per hop behavior is defined in RFC 2474, definition of the
            Differentiated Services Field."
       ::= { fcipEntityInstanceEntry 7 }

   fcipEntityStatus   OBJECT-TYPE
       SYNTAX RowStatus
       MAX-ACCESS   read-create
       STATUS   current
       DESCRIPTION
           "This object specifies the operational status of the row.

            When a management station sets the status to active(1), then
            the values for the objects fcipEntityName,
            fcipEntityAddressType, and fcipEntityAddress should be
            supplied as part of the set request.  The values of the
            objects fcipEntityName, fcipEntityAddressType, and
            fcipEntityAddress can be changed if the row status is in
            active state.  The object fcipEntityTcpConnPort takes the
            default value zero(0), if no value is supplied at the time
            of row creation.

            Setting the status to destroy(6) deletes the specified FCIP
            entity instance row from the table.  It also deletes all the
            rows corresponding to the specified FCIP entity from the
            fcipLinkTable and fcipTcpConnTable tables."
       ::= { fcipEntityInstanceEntry 8 }

Last stop for this part is the start of the FCIP Link Table, where the links between entities live πŸ¦‹

   -- ******************************************************************
   -- The FCIP Link Table
   --

   fcipLinkTable OBJECT-TYPE
       SYNTAX SEQUENCE OF FcipLinkEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "Information about FCIP links that exist on this device."
       ::= { fcipConfig 5 }

   fcipLinkEntry OBJECT-TYPE
       SYNTAX FcipLinkEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "A conceptual row of the FCIP link table containing
            information about a particular FCIP link.  The values of the
            read-create objects in this table are persistent across
            system restarts."
       INDEX { fcipEntityId, fcipLinkIndex }
       ::= { fcipLinkTable 1 }

   FcipLinkEntry ::=
       SEQUENCE {
                   fcipLinkIndex                       Unsigned32,
                   fcipLinkIfIndex                     InterfaceIndex,
                   fcipLinkCost                        Unsigned32,
                   fcipLinkLocalFcipEntityMode         FcipEntityMode,
                   fcipLinkLocalFcipEntityAddressType  InetAddressType,
                   fcipLinkLocalFcipEntityAddress      InetAddress,
                   fcipLinkRemFcipEntityWWN            FcNameIdOrZero,
                   fcipLinkRemFcipEntityId             FcipEntityId,
                   fcipLinkRemFcipEntityAddressType    InetAddressType,
                   fcipLinkRemFcipEntityAddress        InetAddress,
                   fcipLinkStatus                      RowStatus,
                   fcipLinkCreateTime                  TimeStamp
   }

   fcipLinkIndex     OBJECT-TYPE
       SYNTAX Unsigned32 (1..4294967295)
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "An arbitrary integer that uniquely identifies one FCIP link
            within an FCIP entity."
       ::= { fcipLinkEntry 1 }

   fcipLinkIfIndex     OBJECT-TYPE
       SYNTAX InterfaceIndex
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "The ifIndex value of the virtual interface corresponding to
            the FCIP Link running over TCP/IP."
       ::= { fcipLinkEntry 2 }

   fcipLinkCost     OBJECT-TYPE
       SYNTAX Unsigned32
       MAX-ACCESS read-create
       STATUS current
       DESCRIPTION
           "The FSPF cost associated with this FCIP Link."
       DEFVAL  { 0 }
       ::= { fcipLinkEntry 3 }

   fcipLinkLocalFcipEntityMode   OBJECT-TYPE
       SYNTAX FcipEntityMode
       MAX-ACCESS   read-only
       STATUS   current
       DESCRIPTION
           "The mode of the local end of the FCIP link."
       ::= { fcipLinkEntry 4 }

   fcipLinkLocalFcipEntityAddressType   OBJECT-TYPE
       SYNTAX InetAddressType
       MAX-ACCESS read-create
       STATUS current
       DESCRIPTION
           "The type of Internet address contained in the corresponding
            instance of fcipLinkLocalFcipEntityAddress.  Only address
            types IPv4 and IPv6 are supported."
       ::= { fcipLinkEntry 5 }

   fcipLinkLocalFcipEntityAddress   OBJECT-TYPE
       SYNTAX InetAddress
       MAX-ACCESS read-create
       STATUS current
       DESCRIPTION
           "The Internet address for the local end of this FCIP Link.
            The format of this object is determined by the value of the
            fcipLinkLocalFcipEntityAddressType object."
       ::= { fcipLinkEntry 6 }

   fcipLinkRemFcipEntityWWN   OBJECT-TYPE
       SYNTAX FcNameIdOrZero
       MAX-ACCESS read-create
       STATUS current
       DESCRIPTION
           "The World Wide Name of the remote FC Fabric Entity."
       REFERENCE
           "RFC 3821, Section 7.1, FCIP Special Frame Format"
       ::= { fcipLinkEntry 7 }

   fcipLinkRemFcipEntityId   OBJECT-TYPE
       SYNTAX FcipEntityId
       MAX-ACCESS read-create
       STATUS current
       DESCRIPTION
           "The remote FCIP entity's identifier."
       REFERENCE
           "RFC 3821, Section 7.1, FCIP Special Frame Format"
       ::= { fcipLinkEntry 8 }

okay so picking up right where the link table leaves off: the remote address gets its own type and value, the row status controls the whole lifecycle, and then we're into the TCP connection table, which is lowkey where the Data Engine magic happens πŸ¦‹

   fcipLinkRemFcipEntityAddressType   OBJECT-TYPE
       SYNTAX InetAddressType
       MAX-ACCESS read-create
       STATUS current
       DESCRIPTION
           "The type of Internet address contained in the corresponding
            instance of fcipLinkRemFcipEntityAddress.  Only address
            types IPv4 and IPv6 are supported."
       ::= { fcipLinkEntry 9 }

   fcipLinkRemFcipEntityAddress   OBJECT-TYPE
       SYNTAX InetAddress
       MAX-ACCESS read-create
       STATUS current
       DESCRIPTION
           "The Internet address for the remote end of this FCIP Link.
            The format of this object is determined by the value of the
            fcipLinkRemFcipEntityAddressType object."
       ::= { fcipLinkEntry 10 }

   fcipLinkStatus   OBJECT-TYPE
       SYNTAX RowStatus
       MAX-ACCESS   read-create
       STATUS   current
       DESCRIPTION
           "This object specifies the operational status of the row.

            The values of objects fcipLinkLocalFcipEntityAddressType,
            fcipLinkLocalFcipEntityAddress, fcipLinkRemFcipEntityWWN,
            fcipLinkRemFcipEntityId, fcipLinkRemFcipEntityAddressType,
            and fcipLinkRemFcipEntityAddress can be changed if the row
            is in active(1) state.  The object fcipLinkCost is set to
            the value zero(0) if no value is supplied at the time of row
            creation.

            Setting the status to destroy(6) deletes the specified FCIP
            link from the table.  It also deletes all rows corresponding
            to the specified FCIP link from the fcipTcpConnTable table."
       ::= { fcipLinkEntry 11 }

   fcipLinkCreateTime OBJECT-TYPE
       SYNTAX      TimeStamp
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The value of sysUpTime when this entry was last created."
       ::= { fcipLinkEntry 12 }


   -- ******************************************************************
   -- The TCP Connection Table
   --

   fcipTcpConnTable OBJECT-TYPE
       SYNTAX SEQUENCE OF FcipTcpConnEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "Information about existing TCP connections.  Each FCIP link
            within an FCIP entity manages one or more TCP connections.
            The FCIP entity employs a Data Engine for each TCP
            connection for handling FC frame encapsulation,
            de-encapsulation, and transmission of FCIP frames on the
            connection."
       ::= { fcipConfig 6 }

   fcipTcpConnEntry OBJECT-TYPE
       SYNTAX FcipTcpConnEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "A conceptual row of the FCIP TCP Connection table containing
            information about a particular TCP connection."
       INDEX { fcipEntityId,
               fcipLinkIndex,
               fcipTcpConnLocalPort,
               fcipTcpConnRemPort}
       ::= { fcipTcpConnTable 1 }

   FcipTcpConnEntry ::=
       SEQUENCE {
                   fcipTcpConnLocalPort      InetPortNumber,
                   fcipTcpConnRemPort        InetPortNumber,
                   fcipTcpConnRWSize         Unsigned32,
                   fcipTcpConnMSS            Unsigned32
   }

   fcipTcpConnLocalPort     OBJECT-TYPE
       SYNTAX InetPortNumber
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "The local port number for this TCP connection."
       ::= { fcipTcpConnEntry 1 }

   fcipTcpConnRemPort     OBJECT-TYPE
       SYNTAX InetPortNumber
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "The remote port number for this TCP connection."
       ::= { fcipTcpConnEntry 2 }

   fcipTcpConnRWSize     OBJECT-TYPE
       SYNTAX Unsigned32
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "The default maximum TCP Receiver Window size for this TCP
            connection."
       ::= { fcipTcpConnEntry 3 }

   fcipTcpConnMSS     OBJECT-TYPE
       SYNTAX Unsigned32
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "The TCP Maximum Segment Size (MSS) for this TCP connection."
       ::= { fcipTcpConnEntry 4 }

   -- ******************************************************************
   -- The Dynamic Route Table
   --

   fcipDynamicRouteTable OBJECT-TYPE
       SYNTAX SEQUENCE OF FcipDynamicRouteEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "Information about dynamically discovered routing
            information.  The FCIP device may use the SLPv2 protocol in
            conjunction with other protocols (say, FSPF) for dynamically
            discovering other FCIP entities and may populate this table
            with FCIP link information for each Destination Address
            Identifier."
       ::= { fcipConfig 7 }

   fcipDynamicRouteEntry OBJECT-TYPE
       SYNTAX FcipDynamicRouteEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "A conceptual row of the FCIP Dynamic Route Table containing
            information about a particular FCIP route."
       INDEX { fcipEntityId, fcipDynamicRouteDID }
       ::= { fcipDynamicRouteTable 1 }

   FcipDynamicRouteEntry ::=
       SEQUENCE {
                   fcipDynamicRouteDID          FcipDomainIdInOctetForm,
                   fcipDynamicRouteLinkIndex    Unsigned32
               }

   fcipDynamicRouteDID    OBJECT-TYPE
       SYNTAX FcipDomainIdInOctetForm
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "8-bit ID of a Fibre Channel Domain that is reachable from
            this FCIP device."
       ::= { fcipDynamicRouteEntry  1 }

   fcipDynamicRouteLinkIndex    OBJECT-TYPE
       SYNTAX Unsigned32 (1..4294967295)
       MAX-ACCESS read-only
       STATUS current
       DESCRIPTION
           "The FCIP Link used to reach the domain specified by the

            corresponding instance of fcipDynamicRouteDID.  The link
            identified by a value of this object is the same FCIP link
            as identified by the same value of fcipLinkIndex for the
            same FCIP entity."
       ::= { fcipDynamicRouteEntry  2 }


   -- ******************************************************************
   -- The Static Route Table
   --

   fcipStaticRouteTable OBJECT-TYPE
       SYNTAX SEQUENCE OF FcipStaticRouteEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "Information about static route entries configured by the
            Network Admin.  In the absence of dynamic discovery of
            remote FCIP entities, the Network Manager will figure out
            all remote FCIP devices that are reachable from this device
            and populate this table with FCIP link information for each
            Domain ID.  At any time, both static and dynamic routing
            can be active, and an entry in the static route table for a
            given DID takes precedence over the entry in the dynamic
            route table for the same Domain ID."
       ::= { fcipConfig 8 }

   fcipStaticRouteEntry OBJECT-TYPE
       SYNTAX FcipStaticRouteEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "A conceptual row of the FCIP Static Route Table containing
            information about a particular FCIP route.  The values of
            the read-create objects in this table are persistent across
            system restarts."
       INDEX { fcipEntityId, fcipStaticRouteDID }
       ::= { fcipStaticRouteTable 1 }

   FcipStaticRouteEntry ::=
       SEQUENCE {
                   fcipStaticRouteDID           FcipDomainIdInOctetForm,
                   fcipStaticRouteLinkIndex     Unsigned32,
                   fcipStaticRouteStatus        RowStatus
               }

   fcipStaticRouteDID    OBJECT-TYPE
       SYNTAX FcipDomainIdInOctetForm
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "8-bit ID of a Fibre Channel Domain that is reachable from
            this FCIP device."
       ::= { fcipStaticRouteEntry  1 }

   fcipStaticRouteLinkIndex    OBJECT-TYPE
       SYNTAX Unsigned32 (1..4294967295)
       MAX-ACCESS read-create
       STATUS current
       DESCRIPTION
           "The FCIP Link used to reach the domain specified by the
            corresponding instance of fcipStaticRouteDID.  The link
            identified by a value of this object is the same FCIP link
            as identified by the same value of fcipLinkIndex for the
            same FCIP entity."
       ::= { fcipStaticRouteEntry  2 }

   fcipStaticRouteStatus   OBJECT-TYPE
       SYNTAX RowStatus
       MAX-ACCESS   read-create
       STATUS   current
       DESCRIPTION
           "This object specifies the operational status of the row.

            When a management station sets the status to active(1),
            the values for the object fcipStaticRouteLinkIndex should be
            supplied as part of the set request.

            Setting the status to destroy(6) deletes the specified FCIP
            static route entry from the table."
       ::= { fcipStaticRouteEntry  3 }


   -- ******************************************************************
   -- The FCIP Discovery Domain Table
   --

   fcipDiscoveryDomainTable OBJECT-TYPE
       SYNTAX SEQUENCE OF FcipDiscoveryDomainEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "Information about FCIP Discovery Domains.  Each FCIP
            Discovery Domain is associated with one or more FCIP
            entities."
       ::= { fcipConfig 9 }

   fcipDiscoveryDomainEntry OBJECT-TYPE
       SYNTAX FcipDiscoveryDomainEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "A conceptual row of the FCIP Discovery Domain Table
            containing information about a particular FCIP Discovery
            Domain that is associated with one or more FCIP entities.
            The values of the read-write object fcipDiscoveryDomainName
            are persistent across system restarts."
       INDEX { fcipEntityId, fcipDiscoveryDomainIndex }
       ::= { fcipDiscoveryDomainTable 1 }

   FcipDiscoveryDomainEntry ::=
       SEQUENCE {
           fcipDiscoveryDomainIndex        Unsigned32,
           fcipDiscoveryDomainName         SnmpAdminString
       }

   fcipDiscoveryDomainIndex OBJECT-TYPE
       SYNTAX     Unsigned32 (1..4294967295)
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An integer that uniquely identifies an FCIP Discovery Domain
            associated with this FCIP entity."
       ::= { fcipDiscoveryDomainEntry 1 }

   fcipDiscoveryDomainName   OBJECT-TYPE
       SYNTAX SnmpAdminString (SIZE (0..128))
       MAX-ACCESS read-write
       STATUS current
       DESCRIPTION
           "The name of this FCIP Discovery Domain."
       REFERENCE
           "RFC 3822, Section 4.1.1, FCIP Discovery Domains"
       ::= { fcipDiscoveryDomainEntry 2 }

   -- ******************************************************************
   -- The FCIP Link Errors
   --

   fcipLinkErrorsTable OBJECT-TYPE
       SYNTAX SEQUENCE OF FcipLinkErrorsEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "A list of error counters for FCIP Links.  Each counter
            records the number of times a particular error happened that
            caused a TCP connection to close down."
       REFERENCE
           "RFC 3821, Section 5.2, FCIP Link"
       ::= { fcipConfig 10 }

okay bestie, the error counters are next, and they're giving everything πŸŽ€πŸ’…

   fcipLinkErrorsEntry OBJECT-TYPE
       SYNTAX FcipLinkErrorsEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "A conceptual row of the FCIP Link Errors Table containing
            error counters for an FCIP Link."
       INDEX { fcipEntityId, fcipLinkIndex }
       ::= { fcipLinkErrorsTable 1 }

   FcipLinkErrorsEntry ::=
       SEQUENCE {
           fcipLinkFcipLossofFcSynchs            Counter32,
           fcipLinkFcipEncapErrors               Counter32,
           fcipLinkFcipNotReceivedSfResps        Counter32,
           fcipLinkFcipSfRespMismatches          Counter32,
           fcipLinkFcipSfInvalidNonces           Counter32,
           fcipLinkFcipReceivedSfDuplicates      Counter32,
           fcipLinkFcipSfInvalidWWNs             Counter32,
           fcipLinkFcipBB2LkaTimeOuts            Counter32,
           fcipLinkFcipSntpExpiredTimeStamps     Counter32,
           fcipLinkTcpTooManyErrors              Counter32,
           fcipLinkTcpExcessiveDroppedDatagrams  Counter32,
           fcipLinkTcpSaParamMismatches          Counter32
       }

   fcipLinkFcipLossofFcSynchs OBJECT-TYPE
       SYNTAX     Counter32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of times FC synchronization was lost on this FCIP

            Link.  The last discontinuity of this counter is indicated
            by fcipLinkCreateTime."
       ::= { fcipLinkErrorsEntry 1 }

   fcipLinkFcipEncapErrors OBJECT-TYPE
       SYNTAX     Counter32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of FCIP frames received with encapsulation errors
            such as improper header, format, or length.  The last
            discontinuity of this counter is indicated by
            fcipLinkCreateTime."
       ::= { fcipLinkErrorsEntry 2 }

   fcipLinkFcipNotReceivedSfResps OBJECT-TYPE
       SYNTAX     Counter32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of times an FCIP Special Frame Response was
            expected but not received on this FCIP Link.  The last
            discontinuity of this counter is indicated by
            fcipLinkCreateTime."
       ::= { fcipLinkErrorsEntry 3 }

   fcipLinkFcipSfRespMismatches OBJECT-TYPE
       SYNTAX     Counter32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of times FCIP Special Frame Bytes mismatch
            happened on this FCIP Link.  The last discontinuity of this
            counter is indicated by fcipLinkCreateTime."
       ::= { fcipLinkErrorsEntry 4 }

   fcipLinkFcipSfInvalidNonces OBJECT-TYPE
       SYNTAX     Counter32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of times FCIP Special Frame Invalid Connection
            Nonce happened on this FCIP Link.  The last discontinuity
            of this counter is indicated by fcipLinkCreateTime."
       ::= { fcipLinkErrorsEntry 5 }

   fcipLinkFcipReceivedSfDuplicates OBJECT-TYPE
       SYNTAX     Counter32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of times duplicate FCIP Special Frames were
            received on this FCIP Link.  The last discontinuity of this
            counter is indicated by fcipLinkCreateTime."
       ::= { fcipLinkErrorsEntry 6 }

   fcipLinkFcipSfInvalidWWNs OBJECT-TYPE
       SYNTAX     Counter32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of times FCIP Special Frames with invalid
            destination FC Fabric Entity WWN were received on this FCIP
            Link.  The last discontinuity of this counter is indicated
            by fcipLinkCreateTime."
       ::= { fcipLinkErrorsEntry 7 }

   fcipLinkFcipBB2LkaTimeOuts OBJECT-TYPE
       SYNTAX     Counter32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of FC Keep Alive Time-outs that occurred on
            this FCIP Link.  The last discontinuity of this counter
            is indicated by fcipLinkCreateTime."
       ::= { fcipLinkErrorsEntry 8 }

   fcipLinkFcipSntpExpiredTimeStamps OBJECT-TYPE
       SYNTAX     Counter32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of frames discarded due to an expired Simple
            Network Time Protocol (SNTP) timestamp on this FCIP Link.
            The last discontinuity of this counter is indicated by
            fcipLinkCreateTime."
       ::= { fcipLinkErrorsEntry 9 }

   fcipLinkTcpTooManyErrors OBJECT-TYPE
       SYNTAX     Counter32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of TCP connections that closed down on this
            FCIP Link due to too many errors on the connection.  The
            last discontinuity of this counter is indicated by
            fcipLinkCreateTime."
       ::= { fcipLinkErrorsEntry 10  }

   fcipLinkTcpExcessiveDroppedDatagrams OBJECT-TYPE
       SYNTAX     Counter32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of TCP connections that closed down on this
            FCIP Link due to an excessive number of dropped FCIP
            packets.  The last discontinuity of this counter is
            indicated by fcipLinkCreateTime."
       ::= { fcipLinkErrorsEntry 11  }

   fcipLinkTcpSaParamMismatches OBJECT-TYPE
       SYNTAX     Counter32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of times TCP connections with Security
            Association parameter mismatches were closed down on this
            FCIP Link.  The last discontinuity of this counter is
            indicated by fcipLinkCreateTime."
       REFERENCE
           "RFC 3821, Section 9.4.2, TCP Connection Security
            Associations (SAs)"
       ::= { fcipLinkErrorsEntry 12  }


   -- ******************************************************************
   -- Conformance Statements
   --

   fcipCompliances   OBJECT IDENTIFIER ::= { fcipConformance 1 }
   fcipGroups        OBJECT IDENTIFIER ::= { fcipConformance 2 }

   fcipCompliance MODULE-COMPLIANCE
       STATUS current
       DESCRIPTION
           "Compliance statement for FCIP MIB."
       MODULE       -- this module
           MANDATORY-GROUPS {
               fcipEntityScalarGroup,
               fcipEntityInstanceGroup,
               fcipLinkGroup,
               fcipTcpConnGroup,
               fcipDiscoveryDomainGroup,
               fcipLinkErrorsGroup

           }

           GROUP   fcipDynamicRouteGroup
           DESCRIPTION
               "This group is mandatory only for systems that do not
                have these objects in any other FC MIB.  It may be
                implemented even in that case for convenience."

           GROUP   fcipStaticRouteGroup
           DESCRIPTION
               "This group is mandatory only for systems that do not
                have these objects in any other FC MIB.  It may be
                implemented even in that case for convenience."

          OBJECT   fcipEntityAddressType
          SYNTAX   INTEGER { ipv4(1), ipv6(2) }
          DESCRIPTION
              "Only IPv4 and IPv6 address types need to be supported for
               addressing FCIP entities."

          OBJECT   fcipEntityAddress
          SYNTAX   InetAddress (SIZE(4|16))
          DESCRIPTION
              "Size of FCIP entity's IP address depends on address type.
               FCIP entity address size is four if the IP address is
               IPv4 and sixteen if the IP address type is IPv6."

          OBJECT   fcipLinkLocalFcipEntityAddressType
          SYNTAX   INTEGER { ipv4(1), ipv6(2) }
          DESCRIPTION
              "Only IPv4 and IPv6 address types need to be supported for
               addressing the local FCIP entities."

          OBJECT   fcipLinkLocalFcipEntityAddress
          SYNTAX   InetAddress (SIZE(4|16))
          DESCRIPTION
              "Size of FCIP entity's IP address depends on address type.
               FCIP entity address size is four if the IP address is
               IPv4 and sixteen if the IP address type is IPv6."

          OBJECT   fcipLinkRemFcipEntityAddressType
          SYNTAX   INTEGER { ipv4(1), ipv6(2) }
          DESCRIPTION
              "Only IPv4 and IPv6 address types need to be supported for
               addressing the remote FCIP entities."

          OBJECT   fcipLinkRemFcipEntityAddress
          SYNTAX   InetAddress (SIZE(4|16))
          DESCRIPTION
              "Size of FCIP entity's IP address depends on the address
               type.  FCIP entity address size is four if the IP address
               is IPv4 and sixteen if the IP address type is IPv6."

       ::= { fcipCompliances 1 }

   fcipEntityScalarGroup OBJECT-GROUP
       OBJECTS {   fcipDynIpConfType,
                   fcipDeviceWWN,
                   fcipEntitySACKOption
       }
       STATUS current
       DESCRIPTION
           "Collection of scalar objects applicable to all FCIP
            instances."
   ::= { fcipGroups 1 }

   fcipEntityInstanceGroup OBJECT-GROUP
       OBJECTS {
                   fcipEntityName,
                   fcipEntityAddressType,
                   fcipEntityAddress,
                   fcipEntityTcpConnPort,
                   fcipEntitySeqNumWrap,
                   fcipEntityPHBSupport,
                   fcipEntityStatus
       }
       STATUS current
       DESCRIPTION
           "A collection of objects providing information about FCIP
            instances."
   ::= { fcipGroups 2 }

   fcipLinkGroup OBJECT-GROUP
       OBJECTS {
                   fcipLinkIfIndex,
                   fcipLinkCost,
                   fcipLinkLocalFcipEntityMode,
                   fcipLinkLocalFcipEntityAddressType,
                   fcipLinkLocalFcipEntityAddress,
                   fcipLinkRemFcipEntityWWN,
                   fcipLinkRemFcipEntityId,
                   fcipLinkRemFcipEntityAddressType,
                   fcipLinkRemFcipEntityAddress,
                   fcipLinkStatus,
                   fcipLinkCreateTime
       }
       STATUS current
       DESCRIPTION
           "A collection of objects providing information about FCIP
            Links."
   ::= { fcipGroups 3 }

   fcipTcpConnGroup OBJECT-GROUP
       OBJECTS {
                   fcipTcpConnRWSize,
                   fcipTcpConnMSS
       }
       STATUS current
       DESCRIPTION
           "A collection of objects providing information about FCIP
            TCP connections."
   ::= { fcipGroups 4 }

   fcipDiscoveryDomainGroup OBJECT-GROUP
       OBJECTS {
                   fcipDiscoveryDomainName
       }
       STATUS current
       DESCRIPTION
           "A collection of objects providing information about FCIP
            Discovery Domains."
   ::= { fcipGroups 5 }

the error counters are all read-only and they all reset when fcipLinkCreateTime changes, so keep that in mind πŸ¦‹βœ¨

fcipLinkErrorsGroup OBJECT-GROUP OBJECTS { fcipLinkFcipLossofFcSynchs, fcipLinkFcipEncapErrors, fcipLinkFcipNotReceivedSfResps, fcipLinkFcipSfRespMismatches, fcipLinkFcipSfInvalidNonces, fcipLinkFcipReceivedSfDuplicates, fcipLinkFcipSfInvalidWWNs, fcipLinkFcipBB2LkaTimeOuts, fcipLinkFcipSntpExpiredTimeStamps, fcipLinkTcpTooManyErrors, fcipLinkTcpExcessiveDroppedDatagrams, fcipLinkTcpSaParamMismatches } STATUS current DESCRIPTION "A collection of objects providing information about FCIP link errors." ::= { fcipGroups 6 }

fcipDynamicRouteGroup OBJECT-GROUP OBJECTS { fcipDynamicRouteLinkIndex } STATUS current DESCRIPTION "A collection of objects providing information about FCIP dynamic routes." ::= { fcipGroups 7 }

fcipStaticRouteGroup OBJECT-GROUP OBJECTS { fcipStaticRouteLinkIndex, fcipStaticRouteStatus } STATUS current DESCRIPTION "A collection of objects providing information about FCIP static routes." ::= { fcipGroups 8 }

END

5. Security Considerations πŸ”’

okay bestie, this part is SERIOUS 😭 so read it carefully πŸ’œ there are a bunch of management objects in this MIB with a MAX-ACCESS of read-write and/or read-create. those can be sensitive or vulnerable depending on the network, and if you allow SET operations without proper protection, it can really mess with network operations πŸ’€

the scary ones: writing to fcipDiscoveryDomainName and fcipEntityAddress can make portions of the Fibre Channel fabric unreachable πŸ™ˆ and writing to fcipStaticRouteStatus can create incorrect routes to remote devices. not it 🚫

there's also a bunch of objects that count as sensitive info, mainly the ones that reveal identification and network topology:

   fcipDeviceWWN, fcipEntityName, fcipEntityAddress,
   fcipLinkLocalFcipEntityAddress, fcipLinkRemFcipEntityWWN,
   and fcipLinkRemFcipEntityAddress
   -- information on identification;

   fcipDiscoveryDomainName
   -- information on discovery domains;

   fcipDynamicRouteLinkIndex
   -- information on dynamic routes;

   fcipStaticRouteLinkIndex and fcipStaticRouteStatus
   -- information on static routes

ngl the older stuff is a whole mess πŸ’€ SNMP versions before SNMPv3 didn't include adequate security. even if the network itself is locked down (like with IPSec), there's still no control over WHO on that secure network can GET/SET (read/change/create/delete) the objects in this MIB module. so it's giving "trust issues" πŸ₯Ί

it is RECOMMENDED that implementers look at the security features in the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms for authentication and privacy πŸ”βœ¨

and deploying SNMP versions prior to SNMPv3 is NOT RECOMMENDED 🚫 instead, it is RECOMMENDED to deploy SNMPv3 and turn on cryptographic security. then it's the customer/operator's job to make sure the SNMP entity giving access to this MIB module is configured so only the principals (users) with legitimate rights can GET or SET (change/create/delete) the objects. main character energy for the admins πŸ‘‘

6. IANA Considerations πŸ¦‹

okay so IANA assigned a MIB OID under the transmission branch 🌸 specifically { transmission 224 } for fcipMIB, because this MIB has the media-specific definitions that match the ifType value of fcipLink(224). iconic πŸ’…

7. Acknowledgements 🫢

the authors want to give a huge shoutout to NM Area advisor Keith McCloghrie from Cisco for the significant feedback and guidance πŸ’– members of the FCIP Working Group also had their comments and input worked in, so everyone who helped is literally the best 🧚

8. Normative References πŸ“š

   [RFC3821]   Rajagopal, M., Rodriguez, E., and R. Weber, "Fibre
               Channel Over TCP/IP (FCIP)", RFC 3821, July 2004.

   [FCBB2]     Fibre Channel Backbone -2 v6 (FC-BB-2), T11/03-078v0,
               February 2003.

   [FC-SW-3]   Fibre Channel Switch Fabric -3 (FC-SW-3), T11/03-018v4,
               December 2003.

   [RFC4044]   McCloghrie, K., "Fibre Channel Management MIB", RFC 4044,
               May 2005.

   [RFC2863]   McCloghrie, K. and F. Kastenholz, "The Interfaces Group
               MIB", RFC 2863, June 2000.

   [RFC2578]   McCloghrie, K., Perkins, D., and J. Schoenwaelder,
               "Structure of Management Information Version 2 (SMIv2)",
               STD 58, RFC 2578, April 1999.

   [RFC3411]   Harrington, D., Presuhn, R., and B. Wijnen, "An
               Architecture for Describing Simple Network Management
               Protocol (SNMP) Management Frameworks", STD 62, RFC 3411,
               December 2002.

   [RFC2579]   McCloghrie, K., Perkins, D., and J. Schoenwaelder,
               "Textual Conventions for SMIv2", STD 58, RFC 2579, April
               1999.

   [RFC2580]   McCloghrie, K., Perkins, D., and J. Schoenwaelder,
               "Conformance Statements for SMIv2", STD 58, RFC 2580,
               April 1999.

   [RFC2474]   Nichols, K., Blake, S., Baker, F., and D. Black,
               "Definition of the Differentiated Services Field (DS
               Field) in the IPv4 and IPv6 Headers", RFC 2474, December
               1998.

   [RFC4022]   Raghunarayan, R., "Management Information Base for the
               Transmission Control Protocol (TCP)", RFC 4022, March
               2005.

   [RFC3822]   Peterson, D., "Finding Fibre Channel over TCP/IP (FCIP)
               Entities Using Service Location Protocol version 2
               (SLPv2)", RFC 3822, July 2004.

   [RFC2883]   Floyd, S., Mahdavi, J., Mathis, M., and M. Podolsky, "An
               Extension to the Selective Acknowledgement (SACK) Option
               for TCP", RFC 2883, July 2000.

   [RFC1323]   Jacobson, V., Braden, R., and D. Borman, "TCP Extensions
               for High Performance", RFC 1323, May 1992.

   [RFC4001]   Daniele, M., Haberman, B., Routhier, S., and J.
               Schoenwaelder, "Textual Conventions for Internet Network
               Addresses", RFC 4001, February 2005.

9. Informative References 🧠

   [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 ✍️

   Anil Rijhsinghani
   Accton Technology Corporation
   5 Mount Royal Ave
   Marlboro, MA 01752
   USA

   EMail: anil@charter.net


   Ravi Natarajan
   F5 Networks
   2460 North First Street, Suite 100
   San Jose, CA 95131
   USA

   EMail: r.natarajan@f5.com

Copyright (C) The Internet Society (2006).

   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 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`.

Acknowledgement 🌈

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).

and that's a wrap, bestie!! πŸŽ€βœ¨πŸ’–

πŸ“¦ where this page comes from