RFC 4625

Fibre Channel Routing Information MIB

๐Ÿ“… published September 2006, from ietf

RFC 4625: Fibre Channel Routing Information MIB ๐Ÿฆ‹ (Part 1 of 4)

Okay bestie, this one is the Fibre Channel Routing Information MIB ๐Ÿ’– It's a Standards Track spec from September 2006, so it's a real protocol doc that people actually implement. It was written by C. DeSanti and K. McCloghrie from Cisco Systems, plus S. Kode (a consultant) and S. Gai (retired). It came out through the Network Working Group, and the title block doesn't list anything it obsoletes or updates. โœจ

Status of This Memo ๐Ÿ“‹

This is an Internet standards track protocol for the Internet community, and the authors want feedback and suggestions for improvements ๐Ÿซถ For the standardization state and status, check the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited. ๐ŸŒธ

Copyright (C) The Internet Society (2006). ๐Ÿ’…

Abstract ๐Ÿงš

This memo defines a piece of the Management Information Base (MIB) for network management protocols used across the Internet community. It focuses on managed objects for routing info inside a Fibre Channel fabric, and that info doesn't depend on any one routing protocol ๐Ÿ”ฅ

Table of Contents ๐Ÿ—‚๏ธ

1. Introduction ....................................................3
2. The Internet-Standard Management Framework ......................3
3. Short Overview of Fibre Channel .................................3
   3.1. Introduction ...............................................3
   3.2. Routing Protocols ..........................................4
   3.3. Virtual Fabrics ............................................4
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 t11FcRouteGroup Group ..................................6
   5.5. The t11FcRouteTable's INDEX ................................6
6. The T11-FC-ROUTE-MIB Module .....................................7
7. Acknowledgements ...............................................17
8. IANA Considerations ............................................17
9. Security Considerations ........................................17
10. Normative References ..........................................19
11. Informative References ........................................20

1. Introduction โœจ

Same vibe as the abstract, but zoomed in: this memo defines a chunk of the MIB for network management protocols in the Internet community ๐Ÿฆ‹ It describes managed objects for info about the Fibre Channel network's Routing Table, which handles routing inside a Fabric. Stuff that's specific to particular routing protocols, like the Fabric Shortest Path First (FSPF) protocol [FC-SW-4], is not specified in this MIB module ๐Ÿ™ˆ

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be read the way RFC 2119 [RFC2119] describes. ๐Ÿค“

2. The Internet-Standard Management Framework ๐ŸŒˆ

If you want the full tour of the docs behind the current Internet-Standard Management Framework, go check 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). Objects in the MIB are defined with 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 ๐Ÿ“

3.1. Introduction ๐ŸŒธ

Fibre Channel (FC) is logically a bidirectional point-to-point serial data channel, and it's built for high performance ๐Ÿ”ฅ It gives higher-level protocols a general transport, 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 a bunch of communication points called N_Ports, which connect either through a switching network called a Fabric or through a point-to-point link. A Fibre Channel "node" is made of one or more N_Ports. A Fabric can have multiple Interconnect Elements, and some of them are switches. An N_Port hooks up to the Fabric through a switch port called an F_Port. When multiple FC nodes connect to one switch port in an "Arbitrated Loop" topology, the switch port is an FL_Port and the nodes' ports are NL_Ports. "Nx_Port" means either an N_Port or an NL_Port, and "Fx_Port" means either an F_Port or an FL_Port. A switch port that links to another switch port through an Inter-Switch Link (ISL) is an E_Port. A B_Port connects a bridge device to an E_Port on a switch, and it gives you a subset of E_Port functionality ๐Ÿงš

Lots of Fibre Channel components have globally-unique names, including the fabric, each node, and most ports. These names are usually formatted as World Wide Names (WWNs), and you can read more about them in [FC-FS]. WWNs are expected to be persistent across agent and unit resets. ๐Ÿ’Ž

Fibre Channel frames carry 24-bit address identifiers that say where the frame came from and where it's going. Every FC port has both an address identifier and a WWN. When a fabric is in use, the FC address identifiers are dynamic and a switch assigns them. Each octet of a 24-bit address is one level in an address hierarchy, and the Domain_ID is the highest level ๐Ÿ‘‘

3.2. Routing Protocols ๐Ÿ›ฃ๏ธ

Frames get routed through the Fabric using the standard routing protocol, the Fabric Shortest Path First (FSPF) protocol. FSPF (or any other routing protocol) lets a switch build and maintain its own routing table for forwarding the frames it gets. That's a table you look up using the destination address of a received frame, so you can figure out the best link to forward it on toward its destination ๐Ÿš€

3.3. Virtual Fabrics ๐ŸŽ€

The latest standard for an interconnecting Fabric with multiple Fabric Switch elements is [FC-SW-4], which replaces the previous revision, [FC-SW-3]. [FC-SW-4] keeps the existing spec for running a single Fabric on a physical infrastructure, and it adds the definition of Virtual Fabrics plus how multiple Virtual Fabrics can run on one (or more) physical infrastructures โœจ With Virtual Fabrics, each frame gets tagged in its header to show which of the several Virtual Fabrics it's being sent on. All frames entering a particular "Core Switch" [FC-SW-4] (aka one physical switch) on the same Virtual Fabric get processed by the same "Virtual Switch" inside that Core switch. It's giving organized ๐Ÿ’…

4. Relationship to Other MIBs ๐Ÿฆ‹

The first standardized MIB for Fibre Channel [RFC2837] focused on Fibre Channel switches. It's being replaced by the more generic Fibre Channel Management MIB [FC-MGMT], which defines basic info for Fibre Channel hosts and switches. It also includes extensions to the standard IF-MIB [RFC2863] for Fibre Channel interfaces ๐ŸŒท

This MIB goes further than [FC-MGMT] and covers routing traffic inside a Fabric of a Fibre Channel network. The standard routing protocol for Fibre Channel is FSPF [FC-SW-4]. Another MIB, [RFC4626], specifies management info that's specific to FSPF. This MIB holds routing info that doesn't depend on FSPF. In other words, it would still apply even if the network used a routing protocol other than FSPF ๐Ÿซง

This MIB imports some common Textual Conventions from T11-TC-MIB, which is defined in [RFC4439]. ๐Ÿงฉ

5. MIB Overview ๐Ÿ”ฎ

This MIB module lets you monitor how one or more instances of the FSPF protocol are running, and configure some of their parameters. (Heads up: this MIB module doesn't define any "managed actions" you can invoke over SNMP.) ๐Ÿ’€

5.1. Fibre Channel Management Instance ๐ŸŒŸ

[FC-MGMT] defines a Fibre Channel management instance as a separable managed instance of Fibre Channel functionality. You can group Fibre Channel functionality into management instances however is most convenient for the implementation(s). For example, one grouping is 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 [FC-MGMT]. It's the index value that uniquely identifies each Fibre Channel management instance within the same SNMP context ([RFC3411], Section 3.3.1). ๐Ÿ”‘

5.2. Switch Index ๐Ÿ’

The FC-MGMT-MIB [FC-MGMT] defines the fcmSwitchTable as a table of info about the 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. It's 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 ๐ŸŒŠ

Whether it's running on a physical Fabric (no Virtual Fabrics) or inside a Virtual Fabric, FSPF works the same way within a Fabric. So this MIB puts all the Fabric-related info into tables that are INDEX-ed by an arbitrary integer called a "Fabric Index", whose syntax is IMPORTed from the T11-TC-MIB. If a device connects to one physical Fabric with no virtual Fabrics involved, the Fabric Index is always 1. When you've got multiple virtual and/or physical Fabrics, this index is how you tell one Fabric from another ๐Ÿง

It's totally possible, and it may even be likely, that a Fibre Channel switch has ports connected to multiple virtual and/or physical Fabrics. So to make a management protocol query about all the Fabrics one switch connects to easier, fcmSwitchIndex gets listed before t11FcRouteFabricIndex whenever they both show up in the same INDEX clause ๐Ÿซถ

5.4. The t11FcRouteGroup Group ๐Ÿ’ซ

This MIB has one object group, the t11FcRouteGroup. It holds the objects you use to display and configure routes in the Fibre Channel Routing tables for the locally managed switches ๐ŸŽ€

5.5. The t11FcRouteTable's INDEX โœจ

okay so a table full of routes really needs to be sorted, bestie ๐Ÿ’… That way a management app can search by some attribute without reading every single row. To make that work, those attributes have to be objects in the table's INDEX clause. You can see the same idea in ipCidrRouteTable [RFC2096] and, more recently, inetCidrRouteTable in [RFC4292] ๐Ÿฆ‹

ngl the t11FcRouteTable has an unusually big INDEX clause with ten objects ๐Ÿ™ˆ but they're all integers or strings that are 3 octets long (or zero), so the OIDs don't get out of hand. Like, the total is at most 22 sub-identifiers appended to an OBJECT-TYPE's OID when you name an instance of an object in the t11FcRouteTable. That's still less than the minimum you'd append for inetCidrRouteTable. iconic, honestly ๐Ÿ‘‘

6. The T11-FC-ROUTE-MIB Module ๐Ÿงš

here's the whole MIB module, so let's go ๐Ÿ’–

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

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    Unsigned32, mib-2                   FROM SNMPv2-SMI  -- [RFC2578]
    MODULE-COMPLIANCE, OBJECT-GROUP     FROM SNMPv2-CONF -- [RFC2580]
    RowStatus, TimeStamp,
    StorageType                         FROM SNMPv2-TC   -- [RFC2579]
    InterfaceIndex, InterfaceIndexOrZero  FROM IF-MIB    -- [RFC2863]
    fcmInstanceIndex, fcmSwitchIndex,
    FcAddressIdOrZero, FcDomainIdOrZero FROM FC-MGMT-MIB -- [FC-MGMT]
    T11FabricIndex                      FROM T11-TC-MIB; -- [RFC4439]

t11FcRouteMIB MODULE-IDENTITY
    LAST-UPDATED "200608140000Z"
    ORGANIZATION "T11"
    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 USA 95134
                    Email: kzm@cisco.com"
    DESCRIPTION
           "The MIB module for configuring and displaying Fibre
           Channel Route Information.

           Copyright (C) The Internet Society (2006).  This version
           of this MIB module is part of RFC 4625;  see the RFC
           itself for full legal notices."
    REVISION     "200608140000Z"
    DESCRIPTION
           "Initial version of this MIB module, published as RFC4625."

    ::= {mib-2 144 }

t11FcRouteNotifications OBJECT IDENTIFIER ::= { t11FcRouteMIB 0 }
t11FcRouteObjects       OBJECT IDENTIFIER ::= { t11FcRouteMIB 1 }
t11FcRouteConformance   OBJECT IDENTIFIER ::= { t11FcRouteMIB 2 }

--
-- Per-Fabric routing information
--
t11FcRouteFabricTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF T11FcRouteFabricEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
           "The table containing Fibre Channel Routing information
           that is specific to a Fabric."
    ::= { t11FcRouteObjects 1 }

t11FcRouteFabricEntry OBJECT-TYPE
    SYNTAX      T11FcRouteFabricEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
           "Each entry contains routing information specific to a
           particular Fabric on a particular switch (identified by
           values of fcmInstanceIndex and fcmSwitchIndex)."
    INDEX      { fcmInstanceIndex, fcmSwitchIndex,
                 t11FcRouteFabricIndex }
    ::= { t11FcRouteFabricTable 1 }

T11FcRouteFabricEntry ::=
    SEQUENCE {
        t11FcRouteFabricIndex      T11FabricIndex,
        t11FcRouteFabricLastChange TimeStamp
    }

t11FcRouteFabricIndex OBJECT-TYPE
    SYNTAX      T11FabricIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
           "A unique index value that uniquely identifies a
           particular Fabric.

           In a Fabric conformant to FC-SW-3, only a single Fabric
           can operate within a physical infrastructure, and thus
           the value of this Fabric Index will always be 1.

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

t11FcRouteFabricLastChange OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
           "The value of sysUpTime at the most recent time when any
           corresponding row in the t11FcRouteTable was created,
           modified, or deleted.  A corresponding row in the
           t11FcRouteTable is for the same management instance,
           the same switch, and same Fabric as the row in this table.

           If no change has occurred since the last restart of the
           management system, then the value of this object is 0."
    ::= { t11FcRouteFabricEntry 2 }

--
-- Fibre Channel Routing table
--
t11FcRouteTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF T11FcRouteEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
           "The Fibre Channel Routing tables for the
           locally managed switches.  This table lists all the
           routes that are configured in and/or computed by any
           local switch for any Fabric.

           Such routes are used by a switch to forward frames (of user
           data) on a Fabric.  The conceptual process is based on
           extracting the Destination Fibre Channel Address Identifier
           (D_ID) out of a received frame (of user data) and comparing
           it to each entry of this table that is applicable to the
           given switch and Fabric.  Such comparison consists of first
           performing a logical-AND of the extracted D_ID with a mask
           (the value of t11FcRouteDestMask) and second comparing the
           result of that 'AND' operation to the value of
           t11FcRouteDestAddrId.  A similar comparison is made of the
           Source Fibre Channel Address Identifier (S_ID) of a frame
           against the t11FcRouteSrcAddrId and t11FcRouteSrcMask values
           of an entry.  If an entry's value of t11FcRouteInInterface
           is non-zero, then a further comparison determines if the
           frame was received on the appropriate interface.  If all of
           these comparisons for a particular entry are successful,
           then that entry represents a potential route for forwarding
           the received frame.

           For entries configured by a user, t11FcRouteProto has
           the value 'netmgmt'; only entries of this type can be
           deleted by the user."
    ::= { t11FcRouteObjects 2 }

t11FcRouteEntry OBJECT-TYPE
    SYNTAX      T11FcRouteEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
           "Each entry contains a route to a particular destination,
           possibly from a particular subset of source addresses,
           on a particular Fabric via a particular output interface
           and learned in a particular manner."
    INDEX       { fcmInstanceIndex, fcmSwitchIndex,
                  t11FcRouteFabricIndex,
                  t11FcRouteDestAddrId, t11FcRouteDestMask,
                  t11FcRouteSrcAddrId, t11FcRouteSrcMask,
                  t11FcRouteInInterface, t11FcRouteProto,
                  t11FcRouteOutInterface }
    ::= { t11FcRouteTable 1 }
T11FcRouteEntry ::=
    SEQUENCE {
        t11FcRouteDestAddrId   FcAddressIdOrZero,
        t11FcRouteDestMask     FcAddressIdOrZero,
        t11FcRouteSrcAddrId    FcAddressIdOrZero,
        t11FcRouteSrcMask      FcAddressIdOrZero,
        t11FcRouteInInterface  InterfaceIndexOrZero,
        t11FcRouteProto        INTEGER,
        t11FcRouteOutInterface InterfaceIndex,
        t11FcRouteDomainId     FcDomainIdOrZero,
        t11FcRouteMetric       Unsigned32,
        t11FcRouteType         INTEGER,
        t11FcRouteIfDown       INTEGER,
        t11FcRouteStorageType  StorageType,
        t11FcRouteRowStatus    RowStatus
    }

t11FcRouteDestAddrId OBJECT-TYPE
    SYNTAX      FcAddressIdOrZero (SIZE (3))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
           "The destination Fibre Channel Address Identifier of
           this route.  A zero-length string for this field is
           not allowed."
    ::= { t11FcRouteEntry 1 }

t11FcRouteDestMask OBJECT-TYPE
    SYNTAX      FcAddressIdOrZero
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
           "The mask to be logical-ANDed with a destination
           Fibre Channel Address Identifier before it is compared
           to the value in the t11FcRouteDestAddrId field.
           Allowed values are 255.255.255, 255.255.0, or 255.0.0.
           FSPF's definition generates routes to a Domain_ID,
           so the mask for all FSPF-generated routes is 255.0.0.
           The zero-length value has the same meaning as 0.0.0."
    ::= { t11FcRouteEntry 2 }

t11FcRouteSrcAddrId OBJECT-TYPE
    SYNTAX      FcAddressIdOrZero
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
           "The source Fibre Channel Address Identifier of this
           route.  Note that if this object and the corresponding
           instance of t11FcRouteSrcMask both have a value of 0.0.0,
           then this route matches all source addresses.  The
           zero-length value has the same meaning as 0.0.0."
    ::= { t11FcRouteEntry 3 }

t11FcRouteSrcMask OBJECT-TYPE
    SYNTAX      FcAddressIdOrZero
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
           "The mask to be logical-ANDed with a source
           Fibre Channel Address Identifier before it is compared
           to the value in the t11FcRouteSrcAddrId field.  Allowed
           values are 255.255.255, 255.255.0, 255.0.0, or 0.0.0.
           The zero-length value has the same meaning as 0.0.0."
    ::= { t11FcRouteEntry 4 }

t11FcRouteInInterface OBJECT-TYPE
    SYNTAX      InterfaceIndexOrZero
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
           "If the value of this object is non-zero, it is the
           value of ifIndex that identifies the local
           Fibre Channel interface through which a frame
           must have been received in order to match with
           this entry.  If the value of this object is zero,
           the matching does not require that the frame be
           received on any specific interface."
    ::= { t11FcRouteEntry 5 }

t11FcRouteProto OBJECT-TYPE
    SYNTAX   INTEGER {
                 other(1),
                 local(2),
                 netmgmt(3),
                 fspf(4)
              }
    MAX-ACCESS not-accessible
    STATUS   current
    DESCRIPTION
           "The mechanism via which this route was learned:
                other(1)  - not specified
                local(2)  - local interface
                netmgmt(3)- static route
                fspf(4)   - Fibre Shortest Path First
           "
    ::= { t11FcRouteEntry 6 }

t11FcRouteOutInterface OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
           "The value of ifIndex that identifies the local
           Fibre Channel interface through which the next hop
           of this route is to be reached."
    ::= { t11FcRouteEntry 7 }

t11FcRouteDomainId OBJECT-TYPE
    SYNTAX      FcDomainIdOrZero
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
           "The domain_ID of next hop switch.

           This object can have a value of zero if the value
           of t11FcRouteProto is 'local'."
    ::= { t11FcRouteEntry 8 }

t11FcRouteMetric OBJECT-TYPE, the next columns in the route table, and the conformance stuff are all coming up. Let's go ๐Ÿ’…โœจ

t11FcRouteMetric OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65536)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
           "The routing metric for this route.

           The use of this object is dependent on t11FcRouteProto."
    ::= { t11FcRouteEntry 9 }

t11FcRouteType OBJECT-TYPE
    SYNTAX      INTEGER {
                    local(1),
                    remote(2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
           "The type of route.

           local(1)  - a route for which the next Fibre Channel
                       port is the final destination;
           remote(2) - a route for which the next Fibre Channel
                      port is not the final destination."
    DEFVAL {local}
    ::= { t11FcRouteEntry 10 }

t11FcRouteIfDown OBJECT-TYPE
    SYNTAX      INTEGER {
                    remove(1),
                    retain(2)
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
           "The value of this object indicates what happens to
           this route when the output interface (given by the
           corresponding value of t11FcRouteOutInterface) is
           operationally 'down'.  If this object's value is 'retain',
           the route is to be retained in this table.  If this
           object's value is 'remove', the route is to be removed
           from this table."
    DEFVAL  { retain }
    ::= { t11FcRouteEntry 11 }

t11FcRouteStorageType OBJECT-TYPE
    SYNTAX      StorageType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
           "The storage type for this conceptual row.
           Conceptual rows having the value 'permanent' need not
           allow write-access to any columnar objects in the row."
       DEFVAL { nonVolatile }
    ::= { t11FcRouteEntry 12 }

t11FcRouteRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
           "The status of this conceptual row.
           The only rows that can be deleted by setting this object to
           'destroy' are those for which t11FcRouteProto has the value
           'netmgmt'."
    ::= { t11FcRouteEntry 13 }

--
-- Conformance
--
t11FcRouteCompliances OBJECT IDENTIFIER
                         ::= { t11FcRouteConformance 1 }
t11FcRouteGroups      OBJECT IDENTIFIER
                         ::= { t11FcRouteConformance 2 }


t11FcRouteCompliance  MODULE-COMPLIANCE
    STATUS    current
    DESCRIPTION
           "The compliance statement for entities that
           implement the T11-FC-ROUTE-MIB.
--
-- Note: The next four OBJECT clauses are for auxiliary objects, and the
-- SMIv2 does not permit inclusion of objects that are not accessible
-- in an OBJECT clause (see Sections 3.1 & 5.4.3 in STD 58, RFC 2580).
-- Thus, these four clauses cannot be included below in the normal
-- location for OBJECT clauses.
--
--      OBJECT     t11FcRouteSrcAddrId
--      SYNTAX     FcAddressIdOrZero (SIZE (0))
--      DESCRIPTION
--             'Support is not required for routes that
--             match only a subset of possible source
--             addresses.'
--
--      OBJECT     t11FcRouteSrcMask
--      SYNTAX     FcAddressIdOrZero (SIZE (0))
--      DESCRIPTION
--             'Support is not required for routes that
--             match only a subset of possible source
--             addresses.'
--
--      OBJECT     t11FcRouteDestMask
--      DESCRIPTION
--             'Support is mandatory only for FSPF-generated
--             routes.  Since FSPF's definition generates
--             routes to a Domain_ID, the mask for all
--             FSPF-generated routes is 255.0.0.  Thus,
--             support is only required for 255.0.0.'
--
--      OBJECT     t11FcRouteInInterface
--      SYNTAX     InterfaceIndexOrZero (0)
--      DESCRIPTION
--             'Support for routes specific to particular
--             source interfaces is not required.'
          "

    MODULE  -- this module
        MANDATORY-GROUPS { t11FcRouteGroup }

        OBJECT     t11FcRouteIfDown
        MIN-ACCESS read-only
        DESCRIPTION
               "Write access is not required."

        OBJECT     t11FcRouteDomainId
        MIN-ACCESS read-only
        DESCRIPTION
               "Write access is not required."

        OBJECT     t11FcRouteMetric
        MIN-ACCESS read-only
        DESCRIPTION
               "Write access is not required."

        OBJECT     t11FcRouteType
        MIN-ACCESS read-only
        DESCRIPTION
               "Write access is not required."

        OBJECT     t11FcRouteStorageType
        MIN-ACCESS read-only
        DESCRIPTION
               "Write access is not required."

        OBJECT     t11FcRouteRowStatus
        SYNTAX     INTEGER { active(1) }
        MIN-ACCESS read-only
        DESCRIPTION
               "Write access is not required."

    ::= { t11FcRouteCompliances 1 }
t11FcRouteGroup  OBJECT-GROUP
    OBJECTS  { t11FcRouteFabricLastChange,
               t11FcRouteDomainId,
               t11FcRouteMetric,
               t11FcRouteType,
               t11FcRouteIfDown,
               t11FcRouteStorageType,
               t11FcRouteRowStatus
             }
    STATUS   current
    DESCRIPTION
           "A collection of objects for displaying and configuring
           routes."
    ::= { t11FcRouteGroups 1 }

END

7. Acknowledgements ๐ŸŒธ

So this spec was originally cooked up by the INCITS Task Group T11.5 as the SM-RTM project, and the people who helped make it happen deserve so much love ๐Ÿ’– The T11 folks and the T11.5 crew gave comments and contributions, and we're giving a shoutout to:

  • T11 Chair: Robert Snively, Brocade
  • T11 Vice Chair: Claudio DeSanti, Cisco Systems
  • T11.5 Chair: Roger Cummings, Symantec
  • T11.5 members, especially:
    • Ken Hirata, Emulex
    • Scott Kipp, McData
    • Elizabeth G. Rodriguez, Dot Hill

After that, it was approved by the IETF's IMSS Working Group, chaired by David Black (EMC Corporation). Bert Wijnen (Lucent Technologies), the IETF Area Director, also reviewed it, so thank you Bert ๐Ÿซถ

8. IANA Considerations ๐Ÿฆ‹

The IANA assigned a MIB OID for the T11-FC-ROUTE-MIB module under the appropriate subtree. Bookkeeping, but it matters ๐Ÿ“

9. Security Considerations โญ

Okay bestie, this section is serious, so read it carefully ๐Ÿ˜ญ

There are a bunch of management objects in this MIB module with a MAX-ACCESS of read-write and/or read-create. Those can be sensitive or vulnerable in some network environments. Doing SET operations in a non-secure environment without proper protection can totally mess with network operations. These are the objects, plus what they're sensitive about:

t11FcRouteDomainId, t11FcRouteMetric, t11FcRouteType,
t11FcRouteIfDown, t11FcRouteRowStatus
   -- configure new routes and/or modify existing routes.

These objects can be sensitive or vulnerable in some network environments. For example, if someone can change network topology or network speed, they could get better performance at the expense of other network users ๐Ÿ‘€ Again, doing SET operations without proper protection in a non-secure environment can have a negative effect on network operations.

Some of the readable objects in this MIB module (meaning objects 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 travel over the network via SNMP. The objects are the writable ones listed above, plus one more:

t11FcRouteLastChangeTime
   -- the time of the last routing table change.

Real talk: SNMP versions before SNMPv3 didn't have adequate security. Even if the network itself is secure (like with IPSec), there's still no control over who on that secure network can GET and SET (read, change, create, delete) the objects in this MIB module ๐Ÿ™ˆ

It is RECOMMENDED that implementors consider the security features that the SNMPv3 framework provides (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms for authentication and privacy ๐Ÿ”

Further, deploying SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and turn on cryptographic security. It's then the customer or operator's responsibility to make sure the SNMP entity giving access to an instance of this MIB module is properly configured, so the objects are only accessible to principals (users) who have legitimate rights to GET or SET (change, create, delete) them ๐Ÿ’œ

10. Normative References ๐ŸŒˆ

  • [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
  • [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.
  • [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group MIB", RFC 2863, June 2000.
  • [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.
  • [RFC4439] DeSanti, C., Gaonkar, V., McCloghrie, K., and S. Gai, "Fibre Channel Fabric Address Manager MIB", RFC 4439, March 2006.
  • [RFC4626] DeSanti, C., Gaonkar, V., McCloghrie, K., and S. Gai, "MIB for Fibre Channel's Fabric Shortest Path First (FSPF) Protocol", RFC 4626, September 2006.
  • [FC-FS] "Fibre Channel - Framing and Signaling (FC-FS)", ANSI INCITS 373-2003, April 2003.
  • [FC-SW-3] "Fibre Channel - Switch Fabric - 3 (FC-SW-3)", ANSI INCITS 384-2004, 2004.
  • [FC-SW-4] "Fibre Channel - Switch Fabric - 4 (FC-SW-4)", ANSI INCITS 418-2006, 2006.
  • [FC-MGMT] McCloghrie, K., "Fibre Channel Management MIB", RFC 4044, May 2005.

11. Informative References ๐Ÿงš

  • [RFC2096] Baker, F., "IP Forwarding Table MIB", RFC 2096, January 1997.
  • [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.
  • [RFC4292] Haberman, B., "IP Forwarding Table MIB", RFC 4292, April 2006.

Authors' Addresses ๐ŸŽ€

Okay, bestie, time to meet the squad! ๐Ÿ’– These are the people who wrote this RFC, with their contact info so you can slide into their inboxes if you have questions. ๐Ÿ’Œ

Claudio DeSanti
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134 USA

Phone: +1 408 853-9172
EMail: cds@cisco.com
Srini Kode
Consultant

Phone: 408-348-5343
EMail: srinikode@yahoo.com
Keith McCloghrie
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA USA 95134

Phone: +1 408-526-5260
EMail: kzm@cisco.com
Silvano Gai
Retired

Okay, legal time, but make it cute! โœจ The Internet Society owns the copyright here, and it's dated 2006. ๐Ÿ“…

Copyright (C) The Internet Society (2006).

This document is subject to the rights, licenses and restrictions in BCP 78. Outside of what BCP 78 says, the authors keep all their rights. ๐Ÿฆ‹

The whole document and the info in it is given to you "AS IS." The contributor, the organization they represent or are sponsored by (if any), the Internet Society, and the Internet Engineering Task Force all say no to every warranty, express or implied. That includes no promise that using the info won't infringe anyone's rights, and no implied warranty of merchantability or fitness for a particular purpose. ๐Ÿ™ˆ

Translation: you use this at your own risk, babe. ๐Ÿ’€

Intellectual Property ๐ŸŒˆ

The IETF doesn't pick a side on whether any Intellectual Property Rights might cover the tech in this document, or whether you could get a license for them. It also doesn't claim it went looking for them. ๐Ÿ” If you want the rules for rights in RFC documents, check out BCP 78 and BCP 79. ๐Ÿ“š

You can get copies of IPR disclosures sent to the IETF Secretariat, plus any promised licenses. You can also find out what happened when someone tried to get a general license or permission to use proprietary rights for this spec. All of that lives in the IETF online IPR repository at http://www.ietf.org/ipr. ๐Ÿ—‚๏ธ

The IETF also invites anyone to tell them about copyrights, patents, patent applications, or other proprietary rights that might cover tech needed to implement this standard. Send that info to ietf-ipr@ietf.org. ๐Ÿ“ฉ Honestly, speaking up early is iconic behavior. ๐Ÿ‘‘


Acknowledgement ๐Ÿซถ

Shoutout to the funding behind the RFC Editor function. It comes from the IETF Administrative Support Activity (IASA). ๐Ÿ’œ

๐Ÿ“ฆ where this page comes from