RFC 5813
Forwarding and Control Element Separation (ForCES) MIB
RFC 5813: Forwarding and Control Element Separation (ForCES) MIB โจ
okay bestie, this is the spec for a ForCES MIB, which is a Management Information Base module for network management protocols ๐ฆ It's by R. Haas at IBM, it's on the Standards Track (so it's an actual Internet Standard, not just a vibe), and it was published in March 2010. Its ISSN is 2070-1721. The header doesn't list anything it obsoletes or updates, so it's not replacing or patching any other RFC ๐ธ
Quick cast list: the ForCES Working Group produced it, Robert Haas is the editor, and the chairs are Patrick Droz and Jamal Hadi Salim ๐
Abstract ๐
This memo defines a Management Information Base (MIB) module for network management protocols used across the Internet community. Specifically, it defines managed objects for the Forwarding and Control Element Separation (ForCES) Network Element (NE) ๐ฅ
Status of This Memo ๐
This is an Internet Standards Track document ๐
It's a product of the Internet Engineering Task Force (IETF), so it represents IETF community consensus. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). If you want more on Internet Standards, check Section 2 of RFC 5741 ๐
For the current status, any errata, and how to give feedback, go to http://www.rfc-editor.org/info/rfc5813 ๐ธ
Copyright Notice ยฉ๏ธ
Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved ๐ซถ
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as in effect on the date of publication. Please actually read those, because they spell out your rights and restrictions. Code Components pulled from this document must include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Simplified BSD License โญ
Table of Contents ๐
1. The Internet-Standard Management Framework ......................2
2. Introduction ....................................................2
3. Requirements Notation ...........................................3
4. ForCES MIB Overview .............................................3
5. ForCES MIB Definition ...........................................4
6. Associations Kept in the MIB ...................................13
7. Support for Multiple CEs and FEs ...............................14
8. Security Considerations ........................................14
9. IANA Considerations ............................................15
10. References ....................................................15
10.1. Normative References .....................................15
10.2. Informative References ...................................16
Appendix A. Acknowledgments ......................................17
1. The Internet-Standard Management Framework ๐ง
For the full rundown on the current Internet-Standard Management Framework docs, check section 7 of [RFC3410] โจ
Managed objects get accessed through a virtual information store called the Management Information Base, or MIB. Usually you reach MIB objects through the Simple Network Management Protocol (SNMP). MIB objects are defined with the mechanisms in the Structure of Management Information (SMI). This memo specifies a MIB module that complies with SMIv2, which is described in STD 58, [RFC2578], STD 58, [RFC2579] and STD 58, [RFC2580] ๐
2. Introduction ๐ฆ
The ForCES MIB module is a read-only MIB module that captures information about the ForCES protocol ([RFC3654], [RFC3746], [FORCES-APP], and [RFC5810]) ๐ท
The ForCES MIB module does not include information that lives in other MIB modules, like packet counters for interfaces, etc. ๐
More specifically, for associations between Control Elements and Forwarding Elements that are in the UP state, the ForCES MIB module tracks:
- identifiers of the elements in the association,
- configuration parameters of the association, and
- statistics of the association.
3. Requirements Notation ๐
Okay, this part'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 [RFC2119] ๐ฅ
4. ForCES MIB Overview ๐
The MIB module holds the latest ForCES protocol version supported by the Control Element (CE), which is forcesLatestProtocolVersionSupported. Note that the CE also has to allow interaction with Forwarding Elements (FEs) that run earlier versions ๐
For each association identified by the pair of CE ID and FE ID, the MIB module gives you the following info as an entry (forcesAssociationEntry) in the association table (forcesAssociationTable) ๐
- Version number of the ForCES protocol running in this association (
forcesAssociationRunningProtocolVersion). - Time when the association entered the UP state (
forcesAssociationTimeUp). - Time when the association left the UP state (
forcesAssociationTimeDown). Note that this is only used for notification purposes, because the association is removed from the MIB immediately after it leaves the UP state ๐ - Number of ForCES Heartbeat messages sent from the CE (
forcesAssociationHBMsgSent) and received by the CE (forcesAssociationHBMsgReceived) since the association entered the UP state. - Number of operational ForCES messages sent from the CE (
forcesAssociationOperMsgSent) and received by the CE (forcesAssociationOperMsgReceived) since the association entered the UP state. Only messages other than Heartbeat, Association Setup, Association Setup Response, and Association Teardown get counted ๐งฎ
Finally, the MIB module defines these notifications ๐
- Whenever an association enters the UP state, a notification (
forcesAssociationEntryUp) is issued containing the version of the ForCES protocol running. CE ID and FE ID are concatenated to form the table index, so they show up in the OID of the ForCES-protocol running-version object. Optionally, a notification (forcesAssociationEntryUpStats) can be issued instead, with all the associated info for this association exceptforcesAssociationTimeDownโจ - Whenever an association leaves the UP state, a notification (
forcesAssociationEntryDown) is issued containing the version of the ForCES protocol running. Optionally, a notification (forcesAssociationEntryDownStats) can be issued instead, with all the associated info for this association. The reason is that the association and all its associated info get removed from the MIB right after this notification goes out ๐ญ
5. ForCES MIB Definition ๐
Here's the actual MIB module, written in SMI, so copy it exactly ๐ค
FORCES-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
mib-2, Integer32
FROM SNMPv2-SMI
TEXTUAL-CONVENTION, TimeStamp
FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP,
NOTIFICATION-GROUP
FROM SNMPv2-CONF
ZeroBasedCounter32
FROM RMON2-MIB;
forcesMib MODULE-IDENTITY
LAST-UPDATED "201003100000Z" -- March 10, 2010
ORGANIZATION "IETF Forwarding and Control Element
Separation (ForCES) Working Group"
CONTACT-INFO
"WG Charter:
http://www.ietf.org/html.charters/forces-charter.html
Mailing lists:
General Discussion: forces@ietf.org
To Subscribe:
https://www.ietf.org/mailman/listinfo/forces
Chairs: Patrick Droz
Email: dro@zurich.ibm.com
Jamal Hadi Salim
Email: hadi@mojatatu.com
Editor: Robert Haas
IBM
Email: rha@zurich.ibm.com"
DESCRIPTION
"This MIB module contains managed object definitions
for the ForCES Protocol.
Copyright (c) 2010 IETF Trust and the persons identified
as authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with
or without modification, is permitted pursuant to, and
subject to the license terms contained in, the
Simplified BSD License set forth in Section 4.c of the
IETF Trust's Legal Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info).
This version of this MIB module is part of RFC 5813;
see the RFC itself for full legal notices."
REVISION "201003100000Z" -- March 10, 2010
DESCRIPTION
"Initial version, published as RFC 5813."
::= { mib-2 187 }
--****************************************************************
forcesMibNotifications OBJECT IDENTIFIER ::= { forcesMib 0 }
forcesMibObjects OBJECT IDENTIFIER ::= { forcesMib 1 }
forcesMibConformance OBJECT IDENTIFIER ::= { forcesMib 2 }
ForcesID ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"The ForCES identifier is a 4-octet quantity."
SYNTAX OCTET STRING (SIZE (4))
ForcesProtocolVersion ::= TEXTUAL-CONVENTION
DISPLAY-HINT "d"
STATUS current
DESCRIPTION
"ForCES protocol version number.
The version numbers used are defined in the
specifications of the respective protocol:
1 - ForCESv1, RFC 5810."
SYNTAX Integer32 (1..255)
okay bestie, the notifications are up first and they're so iconic ๐ฆ each one fires off when an association moves into or out of the UP state, and they all say the same thing: the CE should be the one throttling setups ๐
-- Notifications
forcesAssociationEntryUp NOTIFICATION-TYPE
OBJECTS {
forcesAssociationRunningProtocolVersion
}
STATUS current
DESCRIPTION
"This notification is generated as soon
as an association enters the UP state.
Note that these notifications are not
throttled as the CE itself should
throttle the setup of associations."
::= { forcesMibNotifications 1 }
forcesAssociationEntryDown NOTIFICATION-TYPE
OBJECTS {
forcesAssociationRunningProtocolVersion
}
STATUS current
DESCRIPTION
"This notification is generated as soon
as an association leaves the UP state.
Note that these notifications are not
throttled as the CE itself should
throttle the setup of associations."
::= { forcesMibNotifications 2 }
forcesAssociationEntryUpStats NOTIFICATION-TYPE
OBJECTS {
forcesAssociationRunningProtocolVersion,
forcesAssociationTimeUp
}
STATUS current
DESCRIPTION
"This notification is generated as soon
as an association enters the UP state.
Note that these notifications are not
throttled as the CE itself should
throttle the setup of associations."
::= { forcesMibNotifications 3 }
forcesAssociationEntryDownStats NOTIFICATION-TYPE
OBJECTS {
forcesAssociationRunningProtocolVersion,
forcesAssociationTimeUp,
forcesAssociationTimeDown,
forcesAssociationHBMsgSent,
forcesAssociationHBMsgReceived,
forcesAssociationOperMsgSent,
forcesAssociationOperMsgReceived,
forcesAssociationCounterDiscontinuityTime
}
STATUS current
DESCRIPTION
"This notification is generated as soon
as an association leaves the UP state.
Note that these notifications are not
throttled as the CE itself should
throttle the setup of associations."
::= { forcesMibNotifications 4 }
-- Objects
forcesLatestProtocolVersionSupported OBJECT-TYPE
SYNTAX ForcesProtocolVersion
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The ForCES protocol version supported by the CE.
The current protocol version is 1.
Note that the CE must also allow interaction
with FEs supporting earlier versions."
::= { forcesMibObjects 1 }
forcesAssociations OBJECT IDENTIFIER ::= { forcesMibObjects 2 }
forcesAssociationTable OBJECT-TYPE
SYNTAX SEQUENCE OF ForcesAssociationEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The (conceptual) table of associations."
::= { forcesAssociations 1 }
forcesAssociationEntry OBJECT-TYPE
SYNTAX ForcesAssociationEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A (conceptual) entry for one association."
INDEX { forcesAssociationCEID, forcesAssociationFEID }
::= { forcesAssociationTable 1 }
ForcesAssociationEntry ::= SEQUENCE {
forcesAssociationCEID ForcesID,
forcesAssociationFEID ForcesID,
forcesAssociationRunningProtocolVersion
ForcesProtocolVersion,
forcesAssociationTimeUp TimeStamp,
forcesAssociationTimeDown TimeStamp,
forcesAssociationHBMsgSent ZeroBasedCounter32,
forcesAssociationHBMsgReceived ZeroBasedCounter32,
forcesAssociationOperMsgSent ZeroBasedCounter32,
forcesAssociationOperMsgReceived ZeroBasedCounter32,
forcesAssociationCounterDiscontinuityTime TimeStamp
}
forcesAssociationCEID OBJECT-TYPE
SYNTAX ForcesID
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The ForCES ID of the CE."
::= { forcesAssociationEntry 1 }
forcesAssociationFEID OBJECT-TYPE
SYNTAX ForcesID
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The ForCES ID of the FE."
::= { forcesAssociationEntry 2 }
forcesAssociationRunningProtocolVersion OBJECT-TYPE
SYNTAX ForcesProtocolVersion
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current ForCES protocol version used in
this association.
The current protocol version is 1."
::= { forcesAssociationEntry 3 }
forcesAssociationTimeUp OBJECT-TYPE
SYNTAX TimeStamp
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of sysUpTime at the time this
association entered the UP state.
If this association started prior to the last
initialization of the network subsystem, then
this object contains a zero value.
This object allows to uniquely identify
associations with the same CE and FE IDs."
::= { forcesAssociationEntry 4 }
forcesAssociationTimeDown OBJECT-TYPE
SYNTAX TimeStamp
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"The value of sysUpTime at the time this
association left the UP state."
::= { forcesAssociationEntry 5 }
forcesAssociationHBMsgSent OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A counter of how many Heartbeat messages have
been sent by the CE on this association
since the association entered the UP state.
Discontinuities in the value of this counter
can occur at reinitialization of the management
system, and at other times as indicated by the
value of forcesAssociationCounterDiscontinuityTime."
::= { forcesAssociationEntry 6 }
forcesAssociationHBMsgReceived OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A counter of how many Heartbeat messages
have been received by the CE on this association
since the association entered the UP state.
Discontinuities in the value of this counter
can occur at reinitialization of the management
system, and at other times as indicated by the
value of forcesAssociationCounterDiscontinuityTime."
::= { forcesAssociationEntry 7 }
forcesAssociationOperMsgSent OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A counter of how many messages other than
Heartbeat (i.e., Config and Query)
have been sent by the CE on this association
since the association entered the UP state.
Discontinuities in the value of this counter
can occur at reinitialization of the management
system, and at other times as indicated by the
value of forcesAssociationCounterDiscontinuityTime."
::= { forcesAssociationEntry 8 }
forcesAssociationOperMsgReceived OBJECT-TYPE
SYNTAX ZeroBasedCounter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A counter of how many messages other than
Heartbeat (i.e., Config response, Query response,
event notification, and packet redirect)
have been received by the CE on this association
since the association entered the UP state.
Discontinuities in the value of this counter
can occur at reinitialization of the management
system, and at other times as indicated by the
value of forcesAssociationCounterDiscontinuityTime."
::= { forcesAssociationEntry 9 }
forcesAssociationCounterDiscontinuityTime OBJECT-TYPE
SYNTAX TimeStamp
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of sysUpTime on the most recent occasion
at which any one or more of this association's
counters suffered a discontinuity. The relevant
counters are the specific instances associated with
this association of any ZeroBasedCounter32 object
contained in the forcesAssociationTable. If no
such discontinuities have occurred since the last
reinitialization of the local management subsystem,
then this object contains a zero value."
::= { forcesAssociationEntry 10 }
-- Conformance
forcesMibCompliances OBJECT IDENTIFIER
::= { forcesMibConformance 1 }
forcesMibGroups OBJECT IDENTIFIER
::= { forcesMibConformance 2 }
-- Compliance statements
forcesMibCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement for routers running
ForCES and implementing the ForCES MIB."
MODULE -- this module
MANDATORY-GROUPS { forcesMibGroup, forcesNotificationGroup }
GROUP forcesNotificationStatsGroup
DESCRIPTION
"Implementation of this group is recommended."
GROUP forcesStatsGroup
DESCRIPTION
"Implementation of this group is recommended."
::= { forcesMibCompliances 1 }
-- Units of conformance
forcesNotificationGroup NOTIFICATION-GROUP
NOTIFICATIONS { forcesAssociationEntryUp,
forcesAssociationEntryDown
}
STATUS current
DESCRIPTION
"A collection of notifications for signaling
important ForCES events."
::= { forcesMibGroups 1 }
forcesMibGroup OBJECT-GROUP
OBJECTS { forcesLatestProtocolVersionSupported,
forcesAssociationRunningProtocolVersion
}
STATUS current
DESCRIPTION
"A collection of objects to support management
of ForCES routers."
::= { forcesMibGroups 2 }
forcesNotificationStatsGroup NOTIFICATION-GROUP
NOTIFICATIONS { forcesAssociationEntryUpStats,
forcesAssociationEntryDownStats
}
STATUS current
DESCRIPTION
"A collection of optional notifications for
signaling important ForCES events including
statistics."
::= { forcesMibGroups 3 }
forcesStatsGroup OBJECT-GROUP
OBJECTS { forcesAssociationTimeUp,
forcesAssociationTimeDown,
forcesAssociationHBMsgSent,
forcesAssociationHBMsgReceived,
forcesAssociationOperMsgSent,
forcesAssociationOperMsgReceived,
forcesAssociationCounterDiscontinuityTime
}
STATUS current
DESCRIPTION
"A collection of optional objects to provide
extra information about the associations.
There is no protocol reason to keep such
information, but these objects can be very
useful in debugging connectivity problems."
::= { forcesMibGroups 4}
END
6. Associations Kept in the MIB โจ
okay bestie, so an association only shows up in this MIB once it's UP ๐ฆ. That happens the moment the CE has sent the FE an Association Setup Response message carrying a successful Association Setup Result. Anything that isn't UP just isn't reflected here, no cap ๐ .
It works the other way too. Associations get yeeted out of the MIB module the second they leave the UP state. That's when the CE hasn't received any message from the FE within a given time period (a Heartbeat or any other protocol message counts), or when the CE has sent an Association Teardown message ๐.
Counters start at zero when the association is created ๐ธ. If the same association goes down and comes back up, the counters reset, and you can spot that discontinuity by checking the discontinuity timestamp โฐ. It's giving plot twist. The time-up timestamp is what lets you tell a brand new association apart from an old one with the same index ๐. And the optional down notification carries the final values of the counters, so you get the receipts ๐งพ.
7. Support for Multiple CEs and FEs ๐ง
okay so an NE is made of one or more FEs and one or more CEs ๐. If there's only one CE, that CE knows about every association in the NE, so it can provide what's needed to support the managed objects in this MIB module โจ. When there's more than one CE, info about the associations can be spread out across them. Whether each CE handles the objects for just the associations it knows about, or whether the CEs team up to look like one single set of objects for the whole NE, is outside the scope of this document ๐.
8. Security Considerations ๐
ohhh this section is serious, bestie ๐ญ, but it's also kinda reassuring. There are no management objects in this MIB module with a MAX-ACCESS clause of read-write and/or read-create. So if this MIB module is implemented correctly, there's no risk of an intruder altering or creating any of its management objects through direct SNMP SET operations ๐.
Some of the readable objects (anything with a MAX-ACCESS other than not-accessible) may be considered sensitive or vulnerable in some network environments. So it's important to control even GET and/or NOTIFY access to them, and possibly even encrypt their values when they're sent over the network via SNMP ๐ซถ. Here are the tables and objects and their sensitivity/vulnerability:
- Objects in the forcesMibGroup are protocol versions. They are neither sensitive nor vulnerable.
- Objects in the forcesStatsGroup are statistics. They are neither sensitive nor vulnerable.
SNMP versions prior to 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 is allowed to access and GET/SET (read/change/create/delete) the objects in this MIB module ๐จ.
It is RECOMMENDED that implementers 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).
Further, deployment of SNMP versions prior to SNMPv3 is NOT RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to enable cryptographic security. It is then a customer/operator responsibility to ensure that the SNMP entity giving access to an instance of this MIB module is properly configured to give access to the objects only to those principals (users) that have legitimate rights to indeed GET or SET (change/create/delete) them ๐.
9. IANA Considerations ๐
The MIB module in this document uses the following IANA-assigned OBJECT IDENTIFIER values recorded in the SMI Numbers registry:
Descriptor OBJECT IDENTIFIER value
---------- -----------------------
forcesMIB { mib-2 187 }
10. References ๐
10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.
[RFC2579] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., "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.
[RFC5810] Doria, A., Ed., Hadi Salim, J., Ed., Haas, R., Ed., Khosravi, H., Ed., Wang, W., Ed., Dong, L., Gopal, R., and J. Halpern, "Forwarding and Control Element Separation (ForCES) Protocol Specification", RFC 5810, March 2010.
10.2. Informative References
[FORCES-APP] Crouch, A., Khosravi, H., Doria, A., Wang, X., and K. Ogawa, "ForCES Applicability Statement", Work in Progress, February 2010.
[RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction and Applicability Statements for Internet-Standard Management Framework", RFC 3410, December 2002.
[RFC3654] Khosravi, H. and T. Anderson, "Requirements for Separation of IP Control and Forwarding", RFC 3654, November 2003.
[RFC3746] Yang, L., Dantu, R., Anderson, T., and R. Gopal, "Forwarding and Control Element Separation (ForCES) Framework", RFC 3746, April 2004.
Appendix A. Acknowledgments ๐ซถ
The author gratefully acknowledges the contributions of Spencer Dawkins, Jinrong Fenggen, John Flick, Xiaoyi Guo, Joel Halpern, Tom Petch, Jamal Hadi Salim, and Bert Wijnen ๐.
Author's Address ๐
Robert Haas
IBM
Saeumerstrasse 4
Rueschlikon 8803
CH
EMail: rha@zurich.ibm.com
URI: http://www.zurich.ibm.com/~rha
๐ฆ where this page comes from
- ietf: rfc5813 2010-03
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms