RFC 4626
MIB for Fibre Channel's Fabric Shortest Path First (FSPF) Protocol
RFC 4626: MIB for Fibre Channel's Fabric Shortest Path First (FSPF) Protocol ๐ฆ
Okay bestie, let's get into it! ๐ This is RFC 4626, a Standards Track doc from September 2006, under the Network Working Group. Its authors are C. DeSanti, V. Gaonkar, and K. McCloghrie (all from Cisco Systems), plus S. Gai, whose affiliation is listed as "Retired" ๐ซถ. The header doesn't have any Obsoletes or Updates lines, so it's not replacing or changing any other RFC. ๐
The whole point is a MIB (Management Information Base), which is a set of managed objects you can monitor and configure over network management protocols. This one is for the FSPF routing protocol that runs in Fibre Channel fabrics. โจ
Status of This Memo
This doc is an Internet standards track protocol spec for the Internet community, and it's asking for discussion and suggestions for improvements ๐ธ. If you want the current standardization state, check the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2006).
Abstract
So this memo defines a piece of the MIB for network management protocols in the Internet community ๐. Specifically, it describes managed objects for info about the Fibre Channel network's Fabric Shortest Path First (FSPF) routing protocol. Main character energy!! ๐
Table of Contents
1. Introduction ....................................................2
2. The Internet-Standard Management Framework ......................2
3. Short Overview of Fibre Channel .................................3
3.1. Introduction ...............................................3
3.2. FSPF Protocol ..............................................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 MIB Groups .............................................6
5.4.1. The t11FspfGeneralGroup Group .......................6
5.4.2. The t11FspfIfGroup Group ............................7
5.4.3. The t11FspfDatabaseGroup Group ......................7
5.4.4. The t11FspfNotificationGroup Group ..................7
6. The T11-FC-FSPF-MIB Module ......................................7
7. Acknowledgements ...............................................31
8. IANA Considerations ............................................32
9. Security Considerations ........................................32
10. Normative References ..........................................33
11. Informative References ........................................34
1. Introduction โจ
Okay so this section is basically the Abstract again, just more detailed ๐. It defines a piece of the MIB for network management protocols in the Internet community. The bit it really cares about is the managed objects for the Fibre Channel network's FSPF routing protocol, which is specified in [FC-SW-4].
Here's the key words bit, and it's important ๐. 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 RFC 2119 [RFC2119]. So when you see those in capitals, they carry real weight. ๐ฅ
2. The Internet-Standard Management Framework ๐ง
If you want the full tea on the current Internet-Standard Management Framework docs, check out section 7 of RFC 3410 [RFC3410] ๐.
So managed objects get accessed through a virtual info store called the Management Information Base, or MIB. Usually you reach them through the Simple Network Management Protocol (SNMP) ๐. The 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]. The SMI stuff is a whole thing but it's giving organized โจ.
3. Short Overview of Fibre Channel ๐
3.1. Introduction
Okay, 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 vehicle 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 a bunch of communication points called N_Ports, which connect either through a switching network (called a Fabric) or by 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 into the Fabric through a switch port called an F_Port. When multiple FC nodes plug into a single switch port through an "Arbitrated Loop" topology, that switch port is called an FL_Port, and the nodes' ports are NL_Ports. The term Nx_Port means either an N_Port or an NL_Port, and the term Fx_Port means either an F_Port or an FL_Port. A switch port that connects to another switch port through an Inter-Switch Link (ISL) is an E_Port. A B_Port connects a bridge device with an E_Port on a switch, and it provides a subset of E_Port functionality. It's a whole family tree ๐ณ.
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). You can find more about WWNs in [FC-FS]. WWNs are expected to stay persistent across agent and unit resets.
Fibre Channel frames carry 24-bit address identifiers that show the frame's source and destination ports. Every FC port has both an address identifier and a WWN. When a fabric is in use, the FC address identifiers are dynamic and get assigned by a switch ๐ง. Each octet of a 24-bit address is a level in an address hierarchy, and the Domain_ID is the highest level.
Routing frames inside the Fabric is normally based on a routing protocol called Fabric Shortest Path First (FSPF). FSPF is a link state path selection protocol, which is defined in Section 8 of [FC-SW-4] ๐ . It keeps track of the state of the links on all switches in the Fabric and gives each link a cost. The protocol works out paths from a switch to every other switch by adding up the cost of all the links on the path, then picks the path with the lowest total cost. The collection of link states (including cost) for all the switches in a Fabric is the topology database, which is also called the link-state database ๐ฅ.
3.2. FSPF Protocol
FSPF has four major components:
- a) A Hello protocol, used to establish connectivity with a neighbor switch, to establish the identity of the neighbor switch, and to exchange FSPF parameters and capabilities;
- b) A replicated topology database, with protocols and mechanisms to keep the databases synchronized across the Fabric;
- c) A path computation algorithm (e.g., Dijkstra's algorithm);
- d) A routing table update.
The topology database synchronization has two major components: an initial database synchronization and an update mechanism ๐ธ. The initial synchronization happens when a switch is initialized, or when an Inter-Switch Link (ISL) comes up. The update mechanism runs in two situations:
- a) When there is a link state change; for example, an ISL going down or coming up;
- b) On a periodic basis, to prevent switches from deleting topology information from the database.
Also, all connections between Fibre Channel switches are point-to-point. Just so we're clear ๐ซถ.
3.3. Virtual Fabrics
The latest standard for an interconnecting Fabric with multiple Fabric Switch elements is [FC-SW-4]. [FC-SW-4] carries forward the previous version's spec for running a single Fabric in a physical infrastructure, and it adds the definition of Virtual Fabrics plus how multiple Virtual Fabrics can run within one (or more) physical infrastructures ๐ฆ. Virtual Fabrics let each frame get tagged in its header to show which of several Virtual Fabrics that frame is being sent on. All frames entering a particular "Core Switch" [FC-SW-4] (aka a physical switch) on the same Virtual Fabric get processed by the same "Virtual Switch" inside that Core switch. Iykyk ๐.
4. Relationship to Other MIBs ๐
The first standardized MIB module for Fibre Channel [RFC4044] was focussed 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 module goes beyond [FC-MGMT] to cover how the FSPF routing protocol works in Fibre Channel switches โจ.
This MIB module only has info specific to FSPF. Info that would still apply if some other routing protocol were used is specified in a separate MIB module ๐.
This MIB module imports some common Textual Conventions from T11-TC-MIB, which is defined in [RFC4439] ๐.
5. MIB Overview ๐ง
This MIB module gives you the means to monitor how one or more instances of the FSPF protocol are running, and to configure some of their parameters ๐ .
5.1. Fibre Channel Management Instance
A Fibre Channel management instance is defined in [FC-MGMT] as a separable managed instance of Fibre Channel functionality. Fibre Channel functionality can get grouped 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] as 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 Fibre Channel switches that are managed by Fibre Channel management instances ๐ฆ. Each Fibre Channel management instance can manage one or more Fibre Channel switches. The Switch Index, fcmSwitchIndex, is IMPORTed from the FC-MGMT-MIB as the index value that uniquely identifies a Fibre Channel switch among those (one or more) managed by the same Fibre Channel management instance ๐ซถ.
Okay, that's the setup done ๐. Next up is section 6, where we get into the actual T11-FC-FSPF-MIB module, so stay tuned, bestie! ๐ง๐
5.3. Fabric Index โจ
okay so whether a switch is talking to one physical Fabric (no Virtual Fabrics involved) or living its best life inside a Virtual Fabric, FSPF works exactly the same way ๐ . so this MIB module puts all the Fabric stuff into tables that are INDEX-ed by an arbitrary integer called a "Fabric Index" ๐. its syntax gets IMPORTed from the T11-TC-MIB. if a device is hooked up to one single physical Fabric with no virtual ones, the Fabric Index is always going to be 1 ๐ธ. but once you've got multiple virtual and/or physical Fabrics going on, this index is how you tell them apart ๐ฅ.
it's quite possible, and may even be likely, that a Fibre Channel switch has ports connected to multiple virtual and/or physical Fabrics ๐. so to make life easier for a management protocol query asking about every Fabric one switch is connected to, fcmSwitchIndex gets listed before t11FspfFabricIndex whenever they both show up in the same INDEX clause ๐ง.
5.4. The MIB Groups ๐
this section covers the four MIB groups in the MIB module ๐ฆ.
5.4.1. The t11FspfGeneralGroup Group ๐
this group is all about per-Fabric monitoring of the FSPF state, plus per-Fabric monitoring and configuration of FSPF parameters ๐.
5.4.2. The t11FspfIfGroup Group ๐ซถ
this group handles per-interface monitoring of FSPF state and statistics, plus per-interface monitoring and configuration of FSPF parameters โจ.
5.4.3. The t11FspfDatabaseGroup Group ๐
this one lets you monitor the info sitting in the FSPF topology database ๐.
5.4.4. The t11FspfNotificationGroup Group โญ
this group holds the notifications that get generated when asynchronous events happen during FSPF operation ๐.
6. The T11-FC-FSPF-MIB Module ๐ฆ
T11-FC-FSPF-MIB DEFINITIONS ::= BEGIN
--
-- For management of FSPF, the Fibre Channel routing protocol.
--
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
Counter32, Integer32, Unsigned32, TimeTicks,
Gauge32, mib-2 FROM SNMPv2-SMI -- [RFC2578]
MODULE-COMPLIANCE, OBJECT-GROUP,
NOTIFICATION-GROUP FROM SNMPv2-CONF -- [RFC2580]
TEXTUAL-CONVENTION, RowStatus, StorageType,
TruthValue FROM SNMPv2-TC -- [RFC2579]
ifIndex, InterfaceIndex FROM IF-MIB -- [RFC2863]
fcmInstanceIndex, fcmSwitchIndex,
FcDomainIdOrZero FROM FC-MGMT-MIB -- [FC-MGMT]
T11FabricIndex FROM T11-TC-MIB -- [RFC4439]
t11FamConfigDomainId
FROM T11-FC-FABRIC-ADDR-MGR-MIB; -- [RFC4439]
t11FcFspfMIB 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 managing the Fabric Shortest Path
First (FSPF) protocol. FSPF is specified in FC-SW-4.
Copyright (C) The Internet Society (2006). This version of
this MIB module is part of RFC 4626; see the RFC itself for
full legal notices."
REVISION "200608140000Z"
DESCRIPTION
"Initial version of this MIB module published as RFC4626."
::= { mib-2 143 }
t11FspfNotifications OBJECT IDENTIFIER ::= { t11FcFspfMIB 0 }
t11FspfObjects OBJECT IDENTIFIER ::= { t11FcFspfMIB 1 }
t11FspfConformance OBJECT IDENTIFIER ::= { t11FcFspfMIB 2 }
t11FspfConfiguration OBJECT IDENTIFIER ::= { t11FspfObjects 1 }
t11FspfDatabase OBJECT IDENTIFIER ::= { t11FspfObjects 2 }
--
-- TEXTUAL CONVENTIONS
T11FspfLsrType ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Type of the Link State Record.
FC-SW-4 defines two types of LSRs and allows for the
possibility for more will be defined in the future:
01 - Switch Link Record
02 - Obsolete
240 - 255 - Vendor Specific
others - Reserved.
"
REFERENCE
"Fibre Channel - Switch Fabric - 4 (FC-SW-4),
ANSI INCITS 418-2006, section 6.1.9.3."
SYNTAX Integer32 (0..255)
T11FspfLinkType ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Type of an the FSPF Link. Presently defined values:
1 - Point-to-Point
240-255 - Vendor Specific
all others - Reserved.
"
REFERENCE
"Fibre Channel - Switch Fabric - 4 (FC-SW-4),
ANSI INCITS 418-2006, section 6.1.9.4."
SYNTAX Integer32 (0..255)
T11FspfInterfaceState ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"The state of the FSPF Neighbor Finite State Machine
for the neighbor (switch) on a particular interface.
Possible values are :
down(1) - Down
init(2) - Init
dbExchange(3) - Database Exchange
dbAckwait(4) - Database AckWait
dbWait(5) - Database Wait
full(6) - Full (Connected)
"
REFERENCE
"Fibre Channel - Switch Fabric - 4 (FC-SW-4),
ANSI INCITS 418-2006, section 8.7."
SYNTAX INTEGER {
down(1),
init(2),
dbExchange(3),
dbAckwait(4),
dbWait(5),
full(6)
}
T11FspfLastCreationTime ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"This TC describes an object that stores the last time
it, and the row containing it, was created.
This can be used by management applications to determine
that a row has been deleted and re-created between reads,
causing an otherwise undetectable discontinuity in the
data."
SYNTAX TimeTicks
--
-- t11FspfTable
t11FspfTable OBJECT-TYPE
SYNTAX SEQUENCE OF T11FspfEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table allows the users to configure and monitor FSPF's
per-Fabric parameters and statistics on all Fabrics known to
locally managed switches.
Entries are created/removed by the agent if and when
(Virtual) Fabrics are created/deleted."
::= { t11FspfConfiguration 1 }
t11FspfEntry OBJECT-TYPE
SYNTAX T11FspfEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry containing FSPF variables, parameters, and
statistics on a particular switch (identified by values
of fcmInstanceIndex and fcmSwitchIndex) for a particular
Fabric (identified by a t11FspfFabricIndex value).
(Note that the local switch's per-fabric Domain-ID is
available in t11FamConfigDomainId, which is defined in
T11-FC-FABRIC-ADDR-MGR-MIB.)"
INDEX { fcmInstanceIndex, fcmSwitchIndex, t11FspfFabricIndex }
::= { t11FspfTable 1 }
T11FspfEntry ::= SEQUENCE {
t11FspfFabricIndex T11FabricIndex,
t11FspfMinLsArrival Unsigned32,
t11FspfMinLsInterval Unsigned32,
t11FspfLsRefreshTime Unsigned32,
t11FspfMaxAge Unsigned32,
t11FspfMaxAgeDiscards Counter32,
t11FspfPathComputations Counter32,
t11FspfChecksumErrors Counter32,
t11FspfLsrs Gauge32,
t11FspfCreateTime T11FspfLastCreationTime,
t11FspfAdminStatus INTEGER,
t11FspfOperStatus INTEGER,
t11FspfNbrStateChangNotifyEnable TruthValue,
t11FspfSetToDefault INTEGER,
t11FspfStorageType StorageType
}
t11FspfFabricIndex 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-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.
In a Fabric that has (can have) only a single Fabric
operating within the physical infrastructure, the
value of this Fabric Index will always be 1."
::= { t11FspfEntry 1 }
t11FspfMinLsArrival OBJECT-TYPE
SYNTAX Unsigned32 (0..65535)
UNITS "milliSeconds"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The minimum time after accepting a Link State Record
(LSR) on this Fabric before accepting another update of
the same LSR on the same Fabric.
An LSR update that is not accepted because of this time
interval is discarded."
REFERENCE "Fibre Channel - Switch Fabric - 4 (FC-SW-4),
ANSI INCITS 418-2006, sections 8.6.4.5 & 15.1."
DEFVAL {1000}
::= { t11FspfEntry 2 }
t11FspfMinLsInterval OBJECT-TYPE
SYNTAX Unsigned32 (0..65535)
UNITS "milliSeconds"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The minimum time after this switch sends an LSR on this
Fabric before it will send another update of the same LSR
on the same Fabric."
REFERENCE "Fibre Channel - Switch Fabric - 4 (FC-SW-4),
ANSI INCITS 418-2006, section 15.1."
DEFVAL {5000}
::= { t11FspfEntry 3 }
t11FspfLsRefreshTime OBJECT-TYPE
SYNTAX Unsigned32
UNITS "Minutes"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The interval between transmission of refresh LSRs on this
Fabric."
REFERENCE "Fibre Channel - Switch Fabric - 4 (FC-SW-4),
ANSI INCITS 418-2006, sections 8.5.1 & 15.1."
DEFVAL {30}
::= { t11FspfEntry 4 }
t11FspfMaxAge OBJECT-TYPE
SYNTAX Unsigned32
UNITS "Minutes"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The maximum age an LSR will be retained in the FSPF
database on this Fabric. An LSR is removed from the
database after MaxAge is reached."
REFERENCE "Fibre Channel - Switch Fabric - 4 (FC-SW-4),
ANSI INCITS 418-2006, section 15.1."
DEFVAL {60}
::= { t11FspfEntry 5 }
t11FspfMaxAgeDiscards OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of LSRs discarded due to their age reaching
t11FspfMaxAge in this Fabric. The last discontinuity of
this counter is indicated by t11FspfCreateTime."
::= { t11FspfEntry 6 }
t11FspfPathComputations OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of times that the path computation algorithm
has been invoked by this Switch on this Fabric to compute
a set of minimum cost paths for this Fabric. The last
discontinuity of this counter is indicated by
t11FspfCreateTime."
REFERENCE "Fibre Channel - Switch Fabric - 4 (FC-SW-4),
ANSI INCITS 418-2006, section 8.1.1."
::= { t11FspfEntry 7 }
okay bestie, this is where the counters and the per-interface table show up ๐โจ the counters keep track of what the switch has seen, and the interface table gets its own very specific rules ๐
Here's the first chunk, with the checksum counter, the link state counters, the Fabric status objects, and the set-to-default and storage stuff ๐
t11FspfChecksumErrors OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of FSPF checksum errors that were detected
locally (and therefore discarded) on this Fabric.
The last discontinuity of this counter is indicated by
t11FspfCreateTime."
REFERENCE "Fibre Channel - Switch Fabric - 4 (FC-SW-4),
ANSI INCITS 418-2006, section 8.5.4."
::= { t11FspfEntry 8 }
t11FspfLsrs OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current number of entries for this Fabric in the
t11FspfLsrTable."
::= { t11FspfEntry 9 }
t11FspfCreateTime OBJECT-TYPE
SYNTAX T11FspfLastCreationTime
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of sysUpTime when this entry was last created."
::= { t11FspfEntry 10 }
t11FspfAdminStatus OBJECT-TYPE
SYNTAX INTEGER {
up(1),
down(2)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The desired state of FSPF in this Fabric. If value of
this object is set to 'up', then FSPF is enabled in
this Fabric. If set to 'down', then FSPF is disabled
in this Fabric -- when FSPF is disabled, FSPF provides
no routes to be included in the T11-FC-ROUTE-MIB module.
(see the T11-FC-ROUTE-MIB)."
REFERENCE "T11-FC-ROUTE-MIB, The Fibre Channel Routing
Information MIB, RFC4625."
DEFVAL {up}
::= { t11FspfEntry 11 }
t11FspfOperStatus OBJECT-TYPE
SYNTAX INTEGER {
up(1),
down(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"State of FSPF in this Fabric. If 't11FspfAdminStatus' is
'down', then the 't11FspfOperStatus' should be 'down'.
If 't11FspfAdminStatus' is changed to 'up', then
't11FspfOperStatus' should change to 'up' as and when
FSPF is active in this Fabric."
::= { t11FspfEntry 12 }
t11FspfNbrStateChangNotifyEnable OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Specifies whether or not the local agent should
issue the notification 't11FspfNbrStateChangNotify'
when the local switch learns of a change of state
in the FSPF Neighbor Finite State Machine on an
interface in this Fabric.
If the value of the object is 'true, then the
notification is generated. If the value is 'false',
notification is not generated."
DEFVAL { false }
::= { t11FspfEntry 13 }
t11FspfSetToDefault OBJECT-TYPE
SYNTAX INTEGER {
default(1),
noOp(2)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Setting this value to 'default' changes the value of each
and every writable object in this row to its default
value.
No action is taken if this object is set to 'noOp'.
The value of the object, when read, is always 'noOp'."
::= { t11FspfEntry 14 }
t11FspfStorageType OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The storage type for read-write objects in this
conceptual row.
Conceptual rows having the value 'permanent' need not
allow write-access to any columnar objects in the row."
DEFVAL { nonVolatile }
::= { t11FspfEntry 15 }
Now we're entering the per-interface table, and this part is lowkey the most rule-heavy bit of the whole MIB ๐ง it covers when rows get created and when they get auto-deleted, so pay attention โจ
--
-- t11FspfIfTable
t11FspfIfTable OBJECT-TYPE
SYNTAX SEQUENCE OF T11FspfIfEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table allows the users to configure and monitor
the FSPF parameters that are per-interface (identified
by a t11FspfIfIndex value), per-Fabric (identified by a
t11FspfFabricIndex value), and per-switch (identified by
values of fcmInstanceIndex and fcmSwitchIndex).
Creating a row in this table via t11FspfIfRowStatus
provides the means to specify non-default parameter value(s)
for an interface at a time when the relevant row in this
table would not otherwise exist because the interface is
either down or it is not an E_Port, but the corresponding
row in the t11FspfTable must already exist.
After the non-default values have been specified for a
port's parameters, they need to be retained in this table,
even when the port becomes 'isolated'. However, having
unnecessary rows in this table clutters it up and makes
those rows that are useful harder for an NMS to find.
Therefore, when an E_Port becomes isolated, its row gets
deleted if and only if all of its parameter values are the
default values; also, when an E_Port becomes non-isolated
in a particular Fabric, a row in this table needs to exist
and is automatically created, if necessary.
The specific conditions for an automated/implicit deletion
of a row are:
a) if the corresponding interface is no longer an E_Port
(e.g., a G_Port which is dynamically determined to be an
F_Port), and all configurable parameters have default
values; or
b) if the interface identified by t11FspfIfIndex no longer
exists (e.g., because a line-card is physically removed);
or
c) if the corresponding row in the t11FspfTable is deleted.
"
::= { t11FspfConfiguration 2 }
And here's the rest of the interface entry: the index, the timers, and the packet counters ๐ฆ
t11FspfIfEntry OBJECT-TYPE
SYNTAX T11FspfIfEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry containing FSPF information for the interface
identified by t11FspfIfIndex, on the fabric identified
by t11FspfFabricIndex, on the switch identified by
fcmSwitchIndex."
INDEX { fcmInstanceIndex, fcmSwitchIndex,
t11FspfFabricIndex, t11FspfIfIndex }
::= { t11FspfIfTable 1 }
T11FspfIfEntry ::= SEQUENCE {
t11FspfIfIndex InterfaceIndex,
t11FspfIfHelloInterval Unsigned32,
t11FspfIfDeadInterval Unsigned32,
t11FspfIfRetransmitInterval Unsigned32,
t11FspfIfInLsuPkts Counter32,
t11FspfIfInLsaPkts Counter32,
t11FspfIfOutLsuPkts Counter32,
t11FspfIfOutLsaPkts Counter32,
t11FspfIfOutHelloPkts Counter32,
t11FspfIfInHelloPkts Counter32,
t11FspfIfRetransmittedLsuPkts Counter32,
t11FspfIfInErrorPkts Counter32,
t11FspfIfNbrState T11FspfInterfaceState,
t11FspfIfNbrDomainId FcDomainIdOrZero,
t11FspfIfNbrPortIndex Unsigned32,
t11FspfIfAdminStatus INTEGER,
t11FspfIfCreateTime T11FspfLastCreationTime,
t11FspfIfSetToDefault INTEGER,
t11FspfIfLinkCostFactor Unsigned32,
t11FspfIfStorageType StorageType,
t11FspfIfRowStatus RowStatus
}
t11FspfIfIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The value of ifIndex that identifies the local
Fibre Channel interface for which this entry
contains FSPF information."
::= { t11FspfIfEntry 1 }
t11FspfIfHelloInterval OBJECT-TYPE
SYNTAX Unsigned32 (1..65535)
UNITS "Seconds"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Interval between the periodic HELLO messages sent on this
interface in this Fabric to verify the link health. Note
that this value must be same at both ends of a link in
this Fabric."
DEFVAL {20}
::= { t11FspfIfEntry 2 }
t11FspfIfDeadInterval OBJECT-TYPE
SYNTAX Unsigned32 (2..65535)
UNITS "Seconds"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Maximum time for which no HELLO messages can be received
on this interface in this Fabric. After this time, the
interface is assumed to be broken and removed from the
database. Note that this value must be greater than the
HELLO interval specified on this interface in this Fabric."
DEFVAL {80}
::= { t11FspfIfEntry 3 }
t11FspfIfRetransmitInterval OBJECT-TYPE
SYNTAX Unsigned32 (1..65535)
UNITS "Seconds"
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The time after which an unacknowledged LSR is
retransmitted on this interface in this Fabric."
DEFVAL {5}
::= { t11FspfIfEntry 4 }
t11FspfIfInLsuPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of Link State Update (LSU) packets received on
this interface in this Fabric. The last discontinuity
of this counter is indicated by t11FspfIfCreateTime."
::= { t11FspfIfEntry 5 }
t11FspfIfInLsaPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of Link State Acknowledgement (LSA) packets
received on this interface in this Fabric. The last
discontinuity of this counter is indicated by
t11FspfIfCreateTime."
::= { t11FspfIfEntry 6 }
t11FspfIfOutLsuPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of Link State Update (LSU) packets transmitted
on this interface in this Fabric. The last
discontinuity of this counter is indicated by
t11FspfIfCreateTime."
::= { t11FspfIfEntry 7 }
t11FspfIfOutLsaPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of Link State Acknowledgement (LSA) packets
transmitted on this interface in this Fabric. The
last discontinuity of this counter is indicated by
t11FspfIfCreateTime."
::= { t11FspfIfEntry 8 }
t11FspfIfOutHelloPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of HELLO packets transmitted on this interface in
this Fabric. The last discontinuity of this counter is
indicated by t11FspfIfCreateTime."
::= { t11FspfIfEntry 9 }
t11FspfIfInHelloPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of HELLO packets received on this interface in
this Fabric. The last discontinuity of this counter is
indicated by t11FspfIfCreateTime."
::= { t11FspfIfEntry 10 }
t11FspfIfRetransmittedLsuPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of LSU packets that contained one or more
retransmitted LSRs, and that were transmitted on this
interface in this Fabric. The last discontinuity of
this counter is indicated by t11FspfIfCreateTime."
::= { t11FspfIfEntry 11 }
t11FspfIfInErrorPkts OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of invalid FSPF control packets received on this
interface in this Fabric. The last discontinuity of
this counter is indicated by t11FspfIfCreateTime."
::= { t11FspfIfEntry 12 }
t11FspfIfNbrState OBJECT-TYPE
SYNTAX T11FspfInterfaceState
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The state of FSPF's 'neighbor state machine', which is
the operational state of the interaction with the
neighbor's interface that is connected to this interface.
If the 't11FspfIfAdminStatus' is 'down', then this object
should be 'down'. If the 't11FspfIfAdminStatus' is 'up',
then this object's value depends on the state of FSPF's
'neighbor state machine' on this interface in this
Fabric."
REFERENCE "Fibre Channel - Switch Fabric - 4 (FC-SW-4),
ANSI INCITS 418-2006, section 8.7"
::= { t11FspfIfEntry 13 }
t11FspfIfNbrDomainId OBJECT-TYPE
SYNTAX FcDomainIdOrZero
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Domain Id of the neighbor in this Fabric."
::= { t11FspfIfEntry 14 }
t11FspfIfNbrPortIndex OBJECT-TYPE
SYNTAX Unsigned32 (0..16777215)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The index, as known by the neighbor, of the neighbor's
interface that is connected to this interface in this
Fabric."
REFERENCE "Fibre Channel - Switch Fabric - 4 (FC-SW-4),
ANSI INCITS 418-2006, section 6.1.9.4."
::= { t11FspfIfEntry 15 }
t11FspfIfAdminStatus OBJECT-TYPE
SYNTAX INTEGER {
up(1),
down(2)
}
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The desired state of FSPF on this interface in this
Fabric, whenever 't11FspfAdminStatus' is 'up'.
If the value of this object is set to 'up', then FSPF is
enabled on this interface in this Fabric. If set to
'down', then FSPF is disabled on this interface in this
Fabric. Note that the operational state of FSPF on an
interface is given by t11FspfIfNbrState."
DEFVAL {up}
::= { t11FspfIfEntry 16 }
t11FspfIfCreateTime OBJECT-TYPE
SYNTAX T11FspfLastCreationTime
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of sysUpTime when this entry was last
created."
::= { t11FspfIfEntry 17 }
t11FspfIfSetToDefault OBJECT-TYPE
SYNTAX INTEGER {
default(1),
noOp(2)
}
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"Setting this value to 'default' changes the value of each
and every writable object in this row to its default
value.
If all the configuration parameters have their default
values, and if the interface is down, then the row is
deleted automatically.
No action is taken if this object is set to 'noOp'.
The value of the object, when read, is always 'noOp'."
::= { t11FspfIfEntry 18 }
t11FspfIfLinkCostFactor OBJECT-TYPE
SYNTAX Unsigned32 (1..65535)
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The administrative factor used in calculating the cost
of sending a frame on this interface in this Fabric.
The formula used to calculate the link cost is:
Link Cost = S * (1.0625e12 / ifSpeed)
where:
S = (the value of this object / 100)
ifSpeed = interface speed (as defined in the IF-MIB).
"
REFERENCE
"Fibre Channel - Switch Fabric - 4 (FC-SW-4),
ANSI INCITS 418-2006, section 8.5.5; and
IF-MIB, RFC 2863."
DEFVAL { 100 }
::= { t11FspfIfEntry 19 }
t11FspfIfStorageType 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 }
::= { t11FspfIfEntry 20 }
t11FspfIfRowStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION
"The status of the conceptual row.
This object can be used to create an entry only if there
is an entry in the t11FspfTable for the corresponding
Fabric, and if the interface is either isolated or is a
non-E_port.
Setting this object to 'destroy' will typically fail;
to reverse the creation process, set the corresponding
instance of t11FspfIfSetToDefault to 'default'."
::= { t11FspfIfEntry 21 }
okay so the interface counters and config knobs are done, and now we're entering the LSR table, which is basically the topology database's little diary of every link state record going around the fabric ๐๐
--
-- t11FspfLsrTable
t11FspfLsrTable OBJECT-TYPE
SYNTAX SEQUENCE OF T11FspfLsrEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table is the database of all the latest
incarnations of the Link State Records (LSRs) that
are currently contained in the topology database,
for all interfaces on all Fabrics known to
locally managed switches.
A Fabric's topology database contains the LSRs that
have been either issued or received by a local switch on
that Fabric, and that have not reached t11FspfMaxAge."
::= { t11FspfDatabase 1 }
t11FspfLsrEntry OBJECT-TYPE
SYNTAX T11FspfLsrEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This gives information for the most recent update of an
LSR. There is one entry for every LSR issued or received
by a locally managed switch (identified by
fcmInstanceIndex and fcmSwitchIndex) in a Fabric
(identified by t11FspfFabricIndex)."
INDEX { fcmInstanceIndex, fcmSwitchIndex, t11FspfFabricIndex,
t11FspfLsrDomainId, t11FspfLsrType }
::= { t11FspfLsrTable 1 }
T11FspfLsrEntry ::= SEQUENCE {
t11FspfLsrDomainId FcDomainIdOrZero,
t11FspfLsrType T11FspfLsrType,
t11FspfLsrAdvDomainId FcDomainIdOrZero,
t11FspfLsrAge Unsigned32,
t11FspfLsrIncarnationNumber Unsigned32,
t11FspfLsrCheckSum Unsigned32,
t11FspfLsrLinks Unsigned32
}
t11FspfLsrDomainId OBJECT-TYPE
SYNTAX FcDomainIdOrZero
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Domain Id of the LSR owner in this Fabric. It is the
Link State Id of this LSR."
::= { t11FspfLsrEntry 1 }
t11FspfLsrType OBJECT-TYPE
SYNTAX T11FspfLsrType
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Type of this LSR."
::= { t11FspfLsrEntry 2 }
t11FspfLsrAdvDomainId OBJECT-TYPE
SYNTAX FcDomainIdOrZero
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Domain Id of the switch that is advertising the LSR on
the behalf of the switch owning it."
::= { t11FspfLsrEntry 3 }
t11FspfLsrAge OBJECT-TYPE
SYNTAX Unsigned32 (0..65535)
UNITS "Seconds"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The time since this LSR was inserted into the database."
::= { t11FspfLsrEntry 4 }
t11FspfLsrIncarnationNumber OBJECT-TYPE
SYNTAX Unsigned32 (0..4294967295)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The link state incarnation number of this LSR. This is
used to identify most recent instance of an LSR while
updating the topology database when an LSR is received.
The updating of an LSR includes incrementing its
incarnation number prior to transmission of the updated
LSR. So, the most recent LSR is the one with the
largest incarnation number."
::= { t11FspfLsrEntry 5 }
t11FspfLsrCheckSum OBJECT-TYPE
SYNTAX Unsigned32 (0..65535)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The checksum of the LSR."
::= { t11FspfLsrEntry 6 }
t11FspfLsrLinks OBJECT-TYPE
SYNTAX Unsigned32 (0..65355)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of entries in the t11FspfLinkTable associated with
this LSR."
::= { t11FspfLsrEntry 7 }
--
-- t11FspfLinkTable
t11FspfLinkNumber OBJECT-TYPE
SYNTAX Unsigned32 (0..2147483647)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of rows in the t11FspfLinkTable."
::= { t11FspfDatabase 3 }
t11FspfLinkTable OBJECT-TYPE
SYNTAX SEQUENCE OF T11FspfLinkEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table contains the list of Inter-Switch Links and
their information that is part of an LSR, either
received or transmitted."
::= { t11FspfDatabase 4 }
t11FspfLinkEntry OBJECT-TYPE
SYNTAX T11FspfLinkEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An entry that contains information about a link
contained in an LSR in this Fabric. An entry is created
whenever a new link appears in an (issued or received)
LSR. An entry is deleted when a link no longer appears
in an (issued or received) LSR."
INDEX { fcmInstanceIndex, fcmSwitchIndex, t11FspfFabricIndex,
t11FspfLsrDomainId, t11FspfLsrType, t11FspfLinkIndex}
::= { t11FspfLinkTable 1 }
T11FspfLinkEntry ::= SEQUENCE {
t11FspfLinkIndex Unsigned32,
t11FspfLinkNbrDomainId FcDomainIdOrZero,
t11FspfLinkPortIndex Unsigned32,
t11FspfLinkNbrPortIndex Unsigned32,
t11FspfLinkType T11FspfLinkType,
t11FspfLinkCost Integer32
}
t11FspfLinkIndex OBJECT-TYPE
SYNTAX Unsigned32 (1..4294967295)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"An arbitrary index of this link."
::= { t11FspfLinkEntry 1 }
t11FspfLinkNbrDomainId OBJECT-TYPE
SYNTAX FcDomainIdOrZero
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Domain Id of the neighbor on the other end of this
link in this Fabric."
::= { t11FspfLinkEntry 2 }
t11FspfLinkPortIndex OBJECT-TYPE
SYNTAX Unsigned32 (0..16777215)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The source E_port of this link, as indicated by the index
value in the LSR received from the switch identified by
't11FspfLsrDomainId'."
::= { t11FspfLinkEntry 3 }
t11FspfLinkNbrPortIndex OBJECT-TYPE
SYNTAX Unsigned32 (0..16777215)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The destination E_port of this link, as indicated by the
index value in the LSR received from the switch identified
by 't11FspfLinkNbrDomainId'."
::= { t11FspfLinkEntry 4 }
t11FspfLinkType OBJECT-TYPE
SYNTAX T11FspfLinkType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The type of this link."
::= { t11FspfLinkEntry 5 }
t11FspfLinkCost OBJECT-TYPE
SYNTAX Integer32 (0..65535)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The cost of sending a frame on this link in this Fabric.
Link cost is calculated using the formula:
link cost = S * (1.0625e12 / Signalling Rate)
For issued LSRs, S is determined by the value of
t11FspfIfLinkCostFactor for the corresponding interface
and Fabric."
::= { t11FspfLinkEntry 6 }
okay the link cost formula is literally giving math bestie ๐งฎ๐ it's basically how expensive it is to send a frame over a link, and the number depends on the signalling rate, so the faster the link, the cheaper it is ๐ฆ
--
-- Notification-related object
t11FspfIfPrevNbrState OBJECT-TYPE
SYNTAX T11FspfInterfaceState
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"The previous state of FSPF's Neighbor Finite State
Machine on an interface.
This object is only used in the
't11FspfNbrStateChangNotify' notification."
::= { t11FspfConfiguration 3 }
--
-- Notifications
t11FspfNbrStateChangNotify NOTIFICATION-TYPE
OBJECTS { ifIndex,
t11FamConfigDomainId,
t11FspfIfNbrDomainId,
t11FspfIfNbrState,
t11FspfIfPrevNbrState
}
STATUS current
DESCRIPTION
"This notification signifies that there has been a change in
the state of an FSPF neighbor. This is generated when the
FSPF state changes to a terminal state, through either
regression (i.e., goes from Full to Init or Down) or
progression (i.e., from any state to Full). The value of
't11FspfIfNbrState' is the state of the neighbor after the
change."
::= { t11FspfNotifications 1 }
--
-- Conformance
t11FspfMIBCompliances
OBJECT IDENTIFIER ::= { t11FspfConformance 1 }
t11FspfMIBGroups
OBJECT IDENTIFIER ::= { t11FspfConformance 2 }
t11FspfMIBCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement for entities that
implement the FSPF."
MODULE -- this module
MANDATORY-GROUPS { t11FspfGeneralGroup,
t11FspfIfGroup,
t11FspfDatabaseGroup,
t11FspfNotificationGroup }
GROUP t11FspfIfCounterGroup
DESCRIPTION
"These counters, for particular FSPF-packet
occurrences on an interface, are mandatory only
for those systems that count such events."
OBJECT t11FspfIfRowStatus
SYNTAX INTEGER { active(1) }
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required, so only
one value needs to be supported."
OBJECT t11FspfIfStorageType
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11FspfNbrStateChangNotifyEnable
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11FspfMinLsArrival
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11FspfMinLsInterval
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11FspfAdminStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11FspfSetToDefault
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11FspfStorageType
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11FspfIfHelloInterval
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11FspfIfDeadInterval
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11FspfIfRetransmitInterval
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11FspfIfAdminStatus
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11FspfIfSetToDefault
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
OBJECT t11FspfIfLinkCostFactor
MIN-ACCESS read-only
DESCRIPTION
"Write access is not required."
::= { t11FspfMIBCompliances 1 }
-- Units of Conformance
t11FspfGeneralGroup OBJECT-GROUP
OBJECTS { t11FspfMinLsArrival,
t11FspfMinLsInterval,
t11FspfLsRefreshTime,
t11FspfMaxAge,
t11FspfMaxAgeDiscards,
t11FspfPathComputations,
t11FspfChecksumErrors,
t11FspfLsrs,
t11FspfCreateTime,
t11FspfAdminStatus,
t11FspfOperStatus,
t11FspfNbrStateChangNotifyEnable,
t11FspfSetToDefault,
t11FspfStorageType }
STATUS current
DESCRIPTION
"A collection of objects for displaying and
configuring FSPF parameters."
::= { t11FspfMIBGroups 1 }
t11FspfIfGroup OBJECT-GROUP
OBJECTS { t11FspfIfHelloInterval,
t11FspfIfDeadInterval,
t11FspfIfRetransmitInterval,
t11FspfIfNbrState,
t11FspfIfNbrDomainId,
t11FspfIfNbrPortIndex,
t11FspfIfAdminStatus,
t11FspfIfCreateTime,
t11FspfIfSetToDefault,
t11FspfIfLinkCostFactor,
t11FspfIfRowStatus,
t11FspfIfStorageType,
t11FspfIfPrevNbrState }
STATUS current
DESCRIPTION
"A collection of objects for displaying the FSPF
interface information."
::= { t11FspfMIBGroups 2 }
t11FspfIfCounterGroup OBJECT-GROUP
OBJECTS { t11FspfIfInLsuPkts,
t11FspfIfInLsaPkts,
t11FspfIfOutLsuPkts,
t11FspfIfOutLsaPkts,
t11FspfIfOutHelloPkts,
t11FspfIfInHelloPkts,
t11FspfIfRetransmittedLsuPkts,
t11FspfIfInErrorPkts }
STATUS current
DESCRIPTION
"A collection of objects for counting particular
FSPF-packet occurrences on an interface."
::= { t11FspfMIBGroups 3 }
t11FspfDatabaseGroup OBJECT-GROUP
OBJECTS { t11FspfLsrAdvDomainId,
t11FspfLsrAge,
t11FspfLsrIncarnationNumber,
t11FspfLsrCheckSum,
t11FspfLsrLinks,
t11FspfLinkNbrDomainId,
t11FspfLinkPortIndex,
t11FspfLinkNbrPortIndex,
t11FspfLinkType,
t11FspfLinkCost,
t11FspfLinkNumber }
STATUS current
DESCRIPTION
"A collection of objects for displaying the FSPF
topology database information."
::= { t11FspfMIBGroups 4 }
t11FspfNotificationGroup NOTIFICATION-GROUP
NOTIFICATIONS { t11FspfNbrStateChangNotify }
STATUS current
DESCRIPTION
"A collection of notifications for FSPF."
::= { t11FspfMIBGroups 5 }
END
7. Acknowledgements โจ
okay so this whole doc was originally cooked up as the SM-FSM project by INCITS Task Group T11.5 (http://www.t11.org) ๐ซถ and they wanted to give a huge shoutout to the whole T11 crew for all their 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 members, especially:
- Ken Hirata, Emulex
- Scott Kipp, McData
- Elizabeth G. Rodriguez, Dot Hill
Then the IETF's IMSS Working Group, chaired by David Black (EMC Corporation), approved it afterwards ๐ and they also thanked Bert Wijnen (Lucent Technologies), the IETF Area Director, for reviewing it. iconic behaviour, honestly ๐
8. IANA Considerations ๐
ngl this one is short and sweet: IANA assigned a MIB OID for the T11-FC-FSPF-MIB module under the appropriate subtree ๐ธ
9. Security Considerations ๐
okay bestie, this section is deadass important, so read it with your whole chest ๐ญ
there are a bunch of management objects in this MIB module with a MAX-ACCESS of read-write and/or read-create. those ones can be sensitive or vulnerable in some network environments, and SET operations in a non-secure environment without proper protection can seriously mess with network operations ๐ the ones to watch are:
t11FspfMinLsArrival, t11FspfMinLsInterval,
t11FspfIfHelloInterval, t11FspfIfDeadInterval &
t11FspfIfRetransmitInterval
-- alter the responsiveness of the FSPF protocol
t11FspfAdminStatus & t11FspfIfAdminStatus
-- enable/disable dynamic routing via FSPF
t11FspfSetToDefault & t11FspfIfSetToDefault
-- nullify valid configuration changes
t11FspfIfLinkCostFactor
-- alter the choice of links
t11FspfNbrStateChangNotifyEnable
-- enable/disable notifications.
again, SET operations in a non-secure environment without proper protection can have a negative effect on network operations. not a vibe ๐
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 super important to control even GET and/or NOTIFY access to them, and maybe even encrypt their values when they're sent over the network via SNMP ๐ these are the tables and objects, and why they're sensitive:
t11FspfTable -- contains per-Fabric parameters and statistics
t11FspfIfTable -- contains per-interface parameters and statistics
t11FspfLsrTable & t11FspfLinkTable -- database of LSR information,
SNMP versions before SNMPv3 did not include adequate security ๐ค even if the network itself is secure (for example by using IPSec), there's still no control over who on that secure network gets to access and GET/SET (read/change/create/delete) the objects in this MIB module. main character problem, fr fr ๐ฅ
It is RECOMMENDED that implementors consider the security features provided by the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms (for authentication and privacy). lowkey the best move ๐ฆ
Further, deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to enable cryptographic security. it is then a customer/operator responsibility to make sure the SNMP entity giving access to an instance of this MIB module is properly configured, so that only the principals (users) with legitimate rights can GET or SET (change/create/delete) those objects ๐ง๐
10. Normative References โจ
okay bestie, these are the must-read sources the spec leans on so hard it literally can't stand without them ๐๐ซถ
- [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.
- [FC-FS] "Fibre Channel - Framing and Signaling (FC-FS)" ANSI INCITS 373-2003, April 2003.
- [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.
- [RFC4439] DeSanti, C., Gaonkar, V., McCloghrie, K., and S. Gai, "Fibre Channel Fabric Address Manager MIB", RFC 4439, March 2006.
11. Informative References ๐ง
these ones are the extra reading that's good to know about, but the spec doesn't need you to read them to function ๐
- [RFC2741] Daniele, M., Wijnen, B., Ellison, M., and D. Francisco, "Agent Extensibility (AgentX) Protocol Version 1", RFC 2741, January 2000.
- [RFC4044] McCloghrie, K., "Fibre Channel Management MIB", RFC 4044, May 2005.
- [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 ๐
here's who wrote this whole thing, and yes, they're all from the same Cisco crew, so it's a whole team moment ๐ฆ
Claudio DeSanti
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134 USA
Phone: +1 408 853-9172
EMail: cds@cisco.com
Vinay Gaonkar
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134 USA
Phone: +1 408 527-8576
EMail: vgaonkar@cisco.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
Full Copyright Statement โ๏ธ
this is the legal bit, so it's a little more serious, but still very much main character ๐
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 is basically saying "we're not picking a side on who owns what, but here's where to look" ๐ง
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 ๐
last but not least, shoutout to whoever keeps the RFC Editor lights on โจ
Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA).
๐ฆ where this page comes from
- ietf: rfc4626 2006-09
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms