Request for Comments: 3813 Bloomberg L.P.
Category: Standard Track A. Viswanathan
Force10 Networks, Inc.
T. Nadeau
Cisco Systems, Inc.
June 2004
Multiprotocol Label Switching (MPLS) Label Switching
Router (LSR) Management Information Base (MIB)
Status of this Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2004).
Abstract
This memo defines an portion of the Management Information Base (MIB)
for use with network management protocols in the Internet community.
In particular, it describes managed objects to configure and/or
monitor a Multiprotocol Label Switching (MPLS) Label Switching Router
(LSR).
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology. . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. The SNMP Management Framework. . . . . . . . . . . . . . . . . 3
4. Outline. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4.1. Summary of LSR MIB Module. . . . . . . . . . . . . . . . 4
5. Brief Description of MIB Module Objects. . . . . . . . . . . . 4
5.1. mplsInterfaceTable . . . . . . . . . . . . . . . . . . . 4
5.2. mplsInterfacePerfTable . . . . . . . . . . . . . . . . . 4
5.3. mplsInSegmentTable . . . . . . . . . . . . . . . . . . . 5
5.4. mplsInSegmentPerfTable . . . . . . . . . . . . . . . . . 5
5.5. mplsOutSegmentTable. . . . . . . . . . . . . . . . . . . 5
5.6. mplsOutSegmentPerfTable. . . . . . . . . . . . . . . . . 5
5.7. mplsXCTable. . . . . . . . . . . . . . . . . . . . . . . 5
5.8. mplsLabelStackTable. . . . . . . . . . . . . . . . . . . 6
5.9. mplsInSegmentMapTable. . . . . . . . . . . . . . . . . . 6
6. Use of 32-bit and 64-bit Counters. . . . . . . . . . . . . . . 6
7. Example of LSP Setup . . . . . . . . . . . . . . . . . . . . . 6
8. Application of the Interface Group to MPLS . . . . . . . . . . 8
8.1. Support of the MPLS Layer by ifTable . . . . . . . . . . 9
9. The Use of RowPointer. . . . . . . . . . . . . . . . . . . . . 10
10. MPLS Label Switching Router MIB Module Definitions . . . . . . 11
11. Security Considerations. . . . . . . . . . . . . . . . . . . . 55
12. Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . 56
13. IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 56
13.1. IANA Considerations for MPLS-LSR-STD-MIB . . . . . . . . 56
14. References . . . . . . . . . . . . . . . . . . . . . . . . . . 57
14.1. Normative References . . . . . . . . . . . . . . . . . . 57
14.2. Informative References . . . . . . . . . . . . . . . . . 58
15. Authors’ Addresses . . . . . . . . . . . . . . . . . . . . . . 59
16. Full Copyright Statement . . . . . . . . . . . . . . . . . . . 60
1. Introduction
This memo defines an portion of the Management Information Base (MIB)
for use with network management protocols in the Internet community.
In particular, it describes managed objects for modeling a
Multiprotocol Label Switching (MPLS) [RFC3031] Label Switching Router
(LSR).
Comments should be made directly to the MPLS mailing list at
mpls@uu.net.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14, RFC 2119,
reference [RFC2119].
2. Terminology
This document uses terminology from the document describing the MPLS
architecture [RFC3031]. A label switched path (LSP) is modeled as a
connection consisting of one or more incoming segments (in-segments)
and/or one or more outgoing segments (out-segments) at a LSR. The
association or interconnection of the in-segments and out-segments is
accomplished by using a cross-connect. We use the terminology
"connection" and "LSP" interchangeably where the meaning is clear
from the context.
in-segment This is analogous to an MPLS label.
out-segment This is analogous to an MPLS label.
cross-connect This describes the conceptual connection
between a set of in-segments and out-segments.
Note that either set may be 0; that is, a
cross-connect may connect only out-segments
together with no in-segments in the case
where an LSP is originating on an LSR.
3. The SNMP Management Framework
For a detailed overview of the documents that describe the current
Internet-Standard Management Framework, please refer to section 7 of
RFC 3410 [RFC3410].
Managed objects are accessed via a virtual information store, termed
the Management Information Base or MIB. MIB objects are generally
accessed through the Simple Network Management Protocol (SNMP).
Objects in the MIB are defined using the mechanisms defined 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].
4. Outline
Configuring LSPs through an LSR involves the following steps:
- Enabling MPLS on MPLS capable interfaces.
- Configuring in-segments and out-segments.
- Setting up the cross-connect table to associate segments and/or to
indicate connection origination and termination.
- Optionally specifying label stack actions.
- Optionally specifying segment traffic parameters.
4.1. Summary of LSR MIB Module
The MIB objects for performing these actions consist of the following
tables:
- The interface table (mplsInterfaceTable), which is used for
revealing the MPLS protocol on MPLS-capable interfaces.
- The in-segment (mplsInSegmentTable) and out-segment
(mplsOutSegmentTable) tables, which are used for configuring LSP
segments at an LSR.
- The cross-connect table (mplsXCTable), which is used to associate
in and out segments together, in order to form a cross-connect.
- The label stack table (mplsLabelStackTable), which is used for
specifying label stack operations.
Further, the MPLS in-segment and out-segment performance tables,
mplsInSegmentPerfTable and mplsOutSegmentPerfTable, contain the
objects necessary to measure the performance of LSPs, and
mplsInterfacePerfTable has objects to measure MPLS performance on a
per-interface basis.
These tables are described in the subsequent sections.
5. Brief Description of MIB Module Objects
Sections 5.1-5.2 describe objects pertaining to MPLS-capable
interfaces of an LSR. The objects described in Sections 5.3-5.8,
were derived from the Incoming Label Map (ILM) and Next Hop Label
Forwarding Entry (NHLFE) as specified in the MPLS architecture
document [RFC3031]. It is appropriate to note that the in-segment,
out-segment, and cross-connect tables were modeled after similar
tables found in [RFC2515].
5.1. mplsInterfaceTable
This table represents the interfaces that are MPLS capable. An LSR
creates an entry in this table for every MPLS capable interface on
that LSR.
5.2. mplsInterfacePerfTable
This table contains objects to measure the MPLS performance of MPLS
capable interfaces and is an AUGMENT to mplsInterfaceTable.
5.3. mplsInSegmentTable
This table contains a description of the incoming MPLS segments to an
LSR and their associated parameters. This index for this table is
mplsInSegmentIndex. The index structure of this table is
specifically designed to handle many different MPLS implementations
that manage their labels both in a distributed and centralized
manner.
The table is designed to handle existing MPLS labels as well as
future label strategies that may require labels longer than the ones
defined in RFC3031. In these cases, the object mplsInSegmentLabelPtr
may be used indicate the first accessible object in a separate table
that can be used to represent the label because it is too long to be
represented in a single 32-bit value (mplsInSegmentLabel).
5.4. mplsInSegmentPerfTable
The MPLS in-Segment Performance Table has objects to measure the
performance of an incoming segment configured on an LSR. It is an
AUGMENT to mplsInSegmentTable. High capacity counters are provided
for objects that are likely to wrap around quickly on high-speed
interfaces.
5.5. mplsOutSegmentTable
The out-Segment Table contains a description of the outgoing MPLS
segments at an LSR and their associated parameters.
5.6. mplsOutSegmentPerfTable
The MPLS out-Segment Table contains objects to measure the
performance of an outgoing segment configured on an LSR. It is an
AUGMENT to mplsOutSegmentTable. High capacity counters are provided
for objects that are likely to wrap around quickly on high-speed
interfaces.
5.7. mplsXCTable
The mplsXCTable specifies information for associating segments
together in order to instruct the LSR to switch between the specified
segments. It supports point-to-point, point-to-multipoint and
multipoint-to-point connections.
The operational status object indicates the packet forwarding state
of a cross-connect entry. For example, when the operational status
objects is ’down’ it indicates that the specified cross-connect entry
will not forward packets. Likewise, when it is set to ’up’ it
indicates that packets will be forwarded.
The administrative status object indicates the forwarding state
desired by the operator.
5.8. mplsLabelStackTable
The mplsLabelStackTable specifies the label stack to be pushed onto a
packet, beneath the top label. Entries to this table are referred to
from mplsXCTable.
5.9 mplsInSegmentMapTable
The mplsInSegmentMapTable specifies the mapping from the
mplsInSegmentIndex to the corresponding mplsInSegmentInterface and
mplsInSegmentLabel objects. The purpose of this table is to provide
the manager with an alternative means by which to locate in-segments.
For instance, this table can be useful when tracing LSPs from LSR to
LSR by first following the in-segment to out-segment, retrieving the
outgoing label and out-going interface, and then proceeding to
interrogate this table at the next-hop LSR to continue the trace.
6. Use of 32-bit and 64-bit Counters
64-bit counters are provided in this MIB module for high speed
interfaces where the use of 32-bit counters might be impractical. The
requirements on the use of 32-bit and 64-bit counters (copied
verbatim from [RFC2863]) are as follows.
For interfaces that operate at 20,000,000 (20 million) bits per
second or less, 32-bit byte and packet counters MUST be supported.
For interfaces that operate faster than 20,000,000 bits/second, and
slower than 650,000,000 bits/second, 32-bit packet counters MUST be
supported and 64-bit octet counters MUST be supported. For
interfaces that operate at 650,000,000 bits/second or faster, 64-bit
packet counters AND 64-bit octet counters MUST be supported.
7. Example of LSP Setup
In this section we provide a brief example of setting up an LSP using
this MIB module’s objects. While this example is not meant to
illustrate every nuance of the MIB module, it is intended as an aid
to understanding some of the key concepts. It is meant to be read
after going through the MIB module itself.
Suppose that one would like to manually create a best-effort,
unidirectional LSP. Assume that the LSP enters the LSR via MPLS
interface A with ifIndex 12 and exits the LSR via MPLS interface B
with ifIndex 13. Let us assume that we do not wish to impose any
additional label stack beneath the top label on the outgoing labeled
packets. The following example illustrates which rows and
corresponding objects might be created to accomplish this. Those
objects relevant to illustrating the relationships amongst different
tables are shown here. Other objects may be needed before conceptual
row activation can happen.
The RowStatus values shown in this section are those to be used in
the set request, typically createAndGo(4) which is used to create the
conceptual row and have its status immediately set to active. Note
that the proper use of createAndGo(4) requires that all columns that
do not have a DEFVAL to be specified in order for the SET to succeed.
In the example below we have not specify all such columns for the
sake of keeping the example short. Please keep in mind that all such
fields must be send during a real SET operation. A subsequent
retrieval operation on the conceptual row will return a different
value, such as active(1). Please see [RFC2579] for a detailed
discussion on the use of RowStatus.
We first create a cross-connect entry that associates the desired
segments together.
In mplsXCTable:
{
mplsXCIndex = 0x02,
mplsXCInSegmentIndex = 0x00000015,
mplsXCOutSegmentIndex = 0x01,
mplsXCLspId = 0x0102 -- unique ID
mplsXCLabelStackIndex = 0x00, -- only a single
-- outgoing label
mplsXCRowStatus = createAndGo(4)
}
Next, we create the appropriate in-segment and out-segment entries
based on the cross-connect. Note that some agents may wish to
automatically create the in and out-segments based on the cross-
connect creation.
In mplsInSegmentTable:
{
mplsInSegmentIndex = 0x00000015
mplsInSegmentLabel = 21, -- incoming label
mplsInSegmentNPop = 1,
mplsInSegmentInterface = 12, -- incoming interface
-- RowPointer MUST point to the first accessible column.
mplsInSegmentLabelPtr = 0.0,
mplsInSegmentTrafficParamPtr = 0.0,
mplsInSegmentRowStatus = createAndGo(4)
}
In mplsOutSegmentTable:
{
mplsOutSegmentIndex = 0x01,
mplsOutSegmentInterface = 13, -- outgoing interface
mplsOutSegmentPushTopLabel = true(1),
mplsOutSegmentTopLabel = 22, -- outgoing label
-- RowPointer MUST point to the first accessible column.
mplsOutSegmentTrafficParamPtr = 0.0,
mplsOutSegmentLabelPtr = 0.0,
mplsOutSegmentRowStatus = createAndGo(4)
}
Note that the mplsInSegmentXCIndex and mplsOutSegmentXCIndex objects
will automatically be populated with the string 0x02 when these
segments are referred to from the corresponding cross-connect entry.
8. Application of the Interface Group to MPLS
RFC2863 defines generic managed objects for managing interfaces.
This memo contains the media-specific extensions to the Interfaces
Group for managing MPLS interfaces.
This memo assumes the interpretation of the Interfaces Group to be in
accordance with [RFC2863] which states that the interfaces table
(ifTable) contains information on the managed resource’s interfaces
and that each sub-layer below the internetwork layer of a network
interface is considered an interface. Thus, the MPLS interface is
represented as an entry in the ifTable. The inter-relation of
entries in the ifTable is defined by Interfaces Stack Group defined
in [RFC2863].
When using MPLS interfaces, the interface stack table might appear as
follows:
+----------------------------------------+
| MPLS interface; ifType = mpls(166) +
+----------------------------------------+
| Underlying Layer +
+----------------------------------------+
In the above diagram, "Underlying Layer" refers to the ifIndex of any
interface type for which MPLS interworking has been defined.
Examples include ATM, Frame Relay, Ethernet, etc.
8.1. Support of the MPLS Layer by ifTable
Some specific interpretations of ifTable for the MPLS layer follow.
Object Use for the MPLS layer
ifIndex Each MPLS interface is represented by an ifEntry.
ifDescr Description of the MPLS interface.
ifType The value that is allocated for MPLS is 166.
ifSpeed The total bandwidth in bits per second for use by
the MPLS layer.
ifPhysAddress Unused.
ifAdminStatus This variable indicates the administrator’s intent
as to whether MPLS should be enabled, disabled, or
running in some diagnostic testing mode on this
interface. Also see [RFC2863].
ifOperStatus This value reflects the actual operational status
of MPLS on this interface.
ifLastChange See [RFC2863].
ifInOctets The number of received octets over the interface,
i.e., the number of received, octets received as
labeled packets.
ifOutOctets The number of transmitted octets over the
interface, i.e., the number of octets transmitted
as labeled packets.
ifInErrors The number of labeled packets dropped due to
uncorrectable errors.
ifInUnknownProtos
The number of received packets discarded during
packet header validation, including packets with
unrecognized label values.
ifOutErrors See [RFC2863].
ifName Textual name (unique on this system) of the
interface or an octet string of zero length.
ifLinkUpDownTrapEnable
Default is disabled (2).
ifConnectorPresent
Set to false (2).
ifHighSpeed See [RFC2863].
ifHCInOctets The 64-bit version of ifInOctets; supported if
required by the compliance statements in [RFC2863].
ifHCOutOctets The 64-bit version of ifOutOctets; supported if
required by the compliance statements in [RFC2863].
ifAlias The non-volatile ’alias’ name for the interface as
specified by a network manager.
ifCounterDiscontinuityTime
See [RFC2863].
9. The Use of RowPointer
RowPointer is a textual convention used to identify a conceptual row
in a MIB Table by pointing to the first accessible object in that
row. In this MIB module, the trafficParamPtr object from either the
mplsInSegmentTable or mplsOutSegmentTable SHOULD indicate the first
accessible column in an entry in the MplsTunnelResourceEntry in the
MPLS-TE-STD-MIB [RFC3812] to indicate the traffic parameter settings
for this segment, if it represents an LSP used for a TE tunnel.
The trafficParamPtr object may optionally point at an externally
defined traffic parameter specification table. A value of
zeroDotZero indicates best-effort treatment. By having the same
value of this object, two or more segments can indicate resource
sharing of such things as LSP queue space, etc.
10. MPLS Label Switching Router MIB Module Definitions
MPLS-LSR-STD-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
Integer32, Counter32, Unsigned32, Counter64, Gauge32,
zeroDotZero
FROM SNMPv2-SMI -- [RFC2578]
MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
FROM SNMPv2-CONF -- [RFC2580]
TruthValue, RowStatus, StorageType, RowPointer,
TimeStamp, TEXTUAL-CONVENTION
FROM SNMPv2-TC -- [RFC2579]
InterfaceIndexOrZero, ifGeneralInformationGroup,
ifCounterDiscontinuityGroup
FROM IF-MIB -- [RFC2863]
mplsStdMIB, MplsLSPID, MplsLabel, MplsBitRate,
MplsOwner
FROM MPLS-TC-STD-MIB -- [RFC3811]
AddressFamilyNumbers
FROM IANA-ADDRESS-FAMILY-NUMBERS-MIB -- [IANAFamily]
InetAddress, InetAddressType
FROM INET-ADDRESS-MIB -- [RFC3291]
;
mplsLsrStdMIB MODULE-IDENTITY
LAST-UPDATED "200406030000Z" -- June 3, 2004
ORGANIZATION "Multiprotocol Label Switching (MPLS) Working Group"
CONTACT-INFO
" Cheenu Srinivasan
Bloomberg L.P.
Email: cheenu@bloomberg.net
Arun Viswanathan
Force10 Networks, Inc.
Email: arunv@force10networks.com
Thomas D. Nadeau
Cisco Systems, Inc.
Email: tnadeau@cisco.com
Comments about this document should be emailed
directly to the MPLS working group mailing list at
mpls@uu.net."
DESCRIPTION
"This MIB module contains managed object definitions for
the Multiprotocol Label Switching (MPLS) Router as
defined in: Rosen, E., Viswanathan, A., and R.