OSPF Router Capabilities: Extensions to OSPF for Advertising Optional Router Capabilities
One OSPF advertisement in which a router lists the optional features it supports.
Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and S. Shaffer, "Extensions to OSPF for Advertising Optional Router Capabilities", RFC 7770, DOI 10.17487/RFC7770, February 2016, <https://www.rfc-editor.org/info/rfc7770>.
@misc{rfc7770,
series = {Request for Comments},
number = 7770,
howpublished = {RFC 7770},
publisher = {RFC Editor},
doi = {10.17487/RFC7770},
url = {https://www.rfc-editor.org/info/rfc7770},
author = {A. Lindem and N. Shen and JP. Vasseur and R. Aggarwal and S. Shaffer},
title = {{Extensions to OSPF for Advertising Optional Router Capabilities}},
pagetotal = 15,
year = 2016,
month = feb,
} RFC text
Contents
Internet Engineering Task Force (IETF) A. Lindem, Ed.
Request for Comments: 7770 N. Shen
Obsoletes: 4970 JP. Vasseur
Category: Standards Track Cisco Systems
ISSN: 2070-1721 R. Aggarwal
Arktan
S. Shaffer
Akamai
February 2016
Extensions to OSPF for Advertising Optional Router Capabilities
Abstract
It is useful for routers in an OSPFv2 or OSPFv3 routing domain to
know the capabilities of their neighbors and other routers in the
routing domain. This document proposes extensions to OSPFv2 and
OSPFv3 for advertising optional router capabilities. The Router
Information (RI) Link State Advertisement (LSA) is defined for this
purpose. In OSPFv2, the RI LSA will be implemented with an Opaque
LSA type ID. In OSPFv3, the RI LSA will be implemented with a unique
LSA type function code. In both protocols, the RI LSA can be
advertised at any of the defined flooding scopes (link, area, or
autonomous system (AS)). This document obsoletes RFC 4970 by
providing a revised specification that includes support for
advertisement of multiple instances of the RI LSA and a TLV for
functional capabilities.
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 5741.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc7770.
Copyright Notice
Copyright (c) 2016 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) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Requirements Notation . . . . . . . . . . . . . . . . . . 3
1.2. Summary of Changes from RFC 4970 . . . . . . . . . . . . 3
2. OSPF Router Information (RI) LSA . . . . . . . . . . . . . . 4
2.1. OSPFv2 Router Information (RI) Opaque LSA . . . . . . . . 4
2.2. OSPFv3 Router Information (RI) Opaque LSA . . . . . . . . 5
2.3. OSPF Router Information LSA TLV Format . . . . . . . . . 6
2.4. OSPF Router Informational Capabilities TLV . . . . . . . 6
2.5. Assigned OSPF Router Informational Capability Bits . . . 7
2.6. OSPF Router Functional Capabilities TLV . . . . . . . . . 8
2.7. Flooding Scope of the Router Information LSA . . . . . . 9
3. Backwards Compatibility . . . . . . . . . . . . . . . . . . . 9
4. Security Considerations . . . . . . . . . . . . . . . . . . . 9
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
5.1. OSPFv2 Opaque LSA Type Assignment . . . . . . . . . . . . 10
5.2. OSPFv3 LSA Function Code Assignment . . . . . . . . . . . 10
5.3. OSPF RI LSA TLV Type Assignment . . . . . . . . . . . . . 11
5.4. Registry for OSPF Router Informational Capability Bits . 12
5.5. Registry for OSPF Router Functional Capability Bits . . . 12
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 12
6.1. Normative References . . . . . . . . . . . . . . . . . . 12
6.2. Informative References . . . . . . . . . . . . . . . . . 13
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 14
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15
1. Introduction
It is useful for routers in an OSPFv2 [OSPF] or OSPFv3 [OSPFv3]
routing domain to know the capabilities of their neighbors and other
routers in the routing domain. This can be useful for both the
advertisement and discovery of OSPFv2 and OSPFv3 capabilities.
Throughout this document, OSPF will be used when the specification is
applicable to both OSPFv2 and OSPFv3. Similarly, OSPFv2 or OSPFv3
will be used when the text is protocol specific.
OSPF uses the options field in LSAs and hello packets to advertise
optional router capabilities. In the case of OSPFv2, all the bits in
this field have been allocated so additional optional capabilities
cannot be advertised. This document describes extensions to OSPF to
advertise these optional capabilities via Opaque LSAs in OSPFv2 and
LSAs with a unique type in OSPFv3. For existing OSPF capabilities,
backwards compatibility issues dictate that this advertisement is
used primarily for informational purposes. For future OSPF
extensions, this advertisement MAY be used as the sole mechanism for
advertisement and discovery.
This document obsoletes RFC 4970 by providing a revised specification
including support for advertisement of multiple instances of the RI
LSA and a TLV for functional capabilities.
1.1. Requirements Notation
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-KEYWORDS].
1.2. Summary of Changes from RFC 4970
This document includes the following changes from RFC 4970 [RFC4970]:
1. The main change is that an OSPF router will be able to advertise
multiple instances of the OSPF Router Information LSA. This
change permeates through much of the document.
2. Additionally, Section 2.6 includes an additional TLV for
functional capabilities. This is in contrast to the existing TLV
that is used to advertise capabilities for informational purposes
only.
3. The IANA allocation policy has been changed from "Standards
Action" to "IETF Review" [IANA-GUIDE] for the following
registries:
o OSPFv3 LSA Function Codes
o OSPF Router Information (RI) TLVs
o OSPF Router Informational Capability Bits
o OSPF Router Functional Capability Bits
4. Finally, references have been updated for documents that have
become RFCs and RFCs that have been obsoleted since the
publication of RFC 4970.
2. OSPF Router Information (RI) LSA
2.1. OSPFv2 Router Information (RI) Opaque LSA
OSPFv2 routers will advertise a link scoped, area-scoped, or AS-
scoped Opaque LSA [OPAQUE]. The OSPFv2 RI LSA has an Opaque type of
4 and the Opaque ID is the RI LSA Instance ID. The first Opaque ID,
i.e., 0, SHOULD always contain the Router Informational Capabilities
TLV and, if advertised, the Router Functional Capabilities TLV. RI
LSA instances subsequent to the first can be used for information
that doesn't fit in the first instance.
OSPFv2 routers will advertise a link-scoped, area-scoped, or AS-
scoped Opaque LSA [OPAQUE]. The OSPFv2 Router Information LSA has an
Opaque type of 4. The Opaque ID specifies the LSA Instance ID with
the first instance always having an Instance ID of 0.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS age | Options | 9, 10, or 11 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 4 | Opaque ID (Instance ID) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+d-+-+-+-+-+-+-+-+-+-+-+
| Advertising Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS checksum | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+- TLVs -+
| ... |
Figure 1. OSPFv2 Router Information Opaque LSA
The format of the TLVs within the body of an RI LSA is as defined in
Section 2.3.
2.2. OSPFv3 Router Information (RI) Opaque LSA
The OSPFv3 Router Information LSA has a function code of 12 while the
S1/S2 bits are dependent on the desired flooding scope for the LSA.
The U bit will be set indicating that the OSPFv3 RI LSA should be
flooded even if it is not understood. The Link State ID (LSID) value
for this LSA is the Instance ID. The first Instance ID, i.e., 0,
SHOULD always contain the Router Informational Capabilities TLV and,
if advertised, the Router Functional Capabilities TLV. OSPFv3 Router
Information LSAs subsequent to the first can be used for information
that doesn't fit in the first instance. OSPFv3 routers MAY advertise
multiple RI LSAs per flooding scope.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS age |1|S12| 12 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link State ID (Instance ID) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Advertising Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS checksum | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+- TLVs -+
| ... |
Figure 2. OSPFv3 Router Information LSA
The format of the TLVs within the body of an RI LSA is as defined in
Section 2.3
2.3. OSPF Router Information LSA TLV Format
The format of the TLVs within the body of an RI LSA is the same as
the format used by the Traffic Engineering Extensions to OSPF [TE].
The LSA payload consists of one or more nested Type/Length/Value
(TLV) triplets. The format of each TLV is:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3. TLV Format
The Length field defines the length of the value portion in octets
(thus a TLV with no value portion would have a length of 0). The TLV
is padded to 4-octet alignment; padding is not included in the length
field (so a 3-octet value would have a length of 3, but the total
size of the TLV would be 8 octets). Nested TLVs are also 4-octet
aligned. For example, a 1-octet value would have the length field
set to 1, and 3 octets of padding would be added to the end of the
value portion of the TLV. The padding is composed of undefined bits.
Unrecognized types are ignored.
When a new Router Information LSA TLV is defined, the specification
MUST explicitly state whether the TLV is applicable to OSPFv2 only,
OSPFv3 only, or both OSPFv2 and OSPFv3.
2.4. OSPF Router Informational Capabilities TLV
An OSPF router advertising an OSPF RI LSA MAY include the Router
Informational Capabilities TLV. If included, it MUST be the first
TLV in the first instance, i.e., Instance 0, of the OSPF RI LSA.
Additionally, the TLV MUST accurately reflect the OSPF router's
capabilities in the scope advertised. However, the informational
capabilities advertised have no impact on OSPF protocol operation;
they are advertised purely for informational purposes.
The format of the Router Informational Capabilities TLV is as
follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Informational Capabilities |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type A 16-bit field set to 1.
Length A 16-bit field that indicates the length of the value
portion in octets and will be a multiple of 4 octets
dependent on the number of capabilities advertised.
Initially, the length will be 4, denoting 4 octets of
informational capability bits.
Value A variable-length sequence of capability bits rounded to
a multiple of 4 octets padded with undefined bits.
Initially, there are 4 octets of capability bits. Bits
are numbered left to right starting with the most
significant bit being bit 0.
Figure 4. OSPF Router Informational Capabilities TLV
The Router Informational Capabilities TLV MAY be followed by optional
TLVs that further specify a capability.
2.5. Assigned OSPF Router Informational Capability Bits
The following informational capability bits have been assigned:
Bit Capabilities
0 OSPF graceful restart capable [GRACE]
1 OSPF graceful restart helper [GRACE]
2 OSPF Stub Router support [STUB]
3 OSPF Traffic Engineering support [TE]
4 OSPF point-to-point over LAN [P2PLAN]
5 OSPF Experimental TE [EXP-TE]
6-31 Unassigned (IETF Review)
Figure 5. OSPF Router Informational Capabilities Bits
References for [GRACE], [STUB], [TE], [P2PLAN], and [EXP-TE] are
included herein.
2.6. OSPF Router Functional Capabilities TLV
This specification also defines the Router Functional Capabilities
TLV for advertisement in the OSPF Router Information LSA. An OSPF
router advertising an OSPF RI LSA MAY include the Router Functional
Capabilities TLV. If included, it MUST be the included in the first
instance of the LSA. Additionally, the TLV MUST reflect the
advertising OSPF router's actual functional capabilities since the
information will be used to dictate OSPF protocol operation in the
flooding scope of the containing OSPF RI LSA. If the TLV is not
included or the length doesn't include the assigned OSPF functional
capability bit, the corresponding OSPF functional capability is
implicitly advertised as not being supported by the advertising OSPF
router.
The format of the Router Functional Capabilities TLV is as follows:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Functional Capabilities |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type A 16-bit field set to 2.
Length A 16-bit field that indicates the length of the value
portion in octets and will be a multiple of 4 octets
dependent on the number of capabilities advertised.
Initially, the length will be 4, denoting 4 octets of
informational capability bits.
Value A variable-length sequence of capability bits rounded
to a multiple of 4 octets padded with undefined bits.
Initially, there are 4 octets of capability bits. Bits
are numbered left to right starting with the most
significant bit being bit 0.
Figure 6. OSPF Router Functional Capabilities TLV
The Router Functional Capabilities TLV MAY be followed by optional
TLVs that further specify a capability. In contrast to the Router
Informational Capabilities TLV, the OSPF extensions advertised in
this TLV MAY be used by other OSPF routers to dictate protocol
operation. The specifications for functional capabilities advertised
in this TLV MUST describe protocol behavior and address backwards
compatibility.
2.7. Flooding Scope of the Router Information LSA
The flooding scope for a Router Information LSA is determined by the
LSA type. For OSPFv2, a type 9 (link-scoped), type 10 (area-scoped),
or type 11 (AS-scoped) Opaque LSA may be flooded. For OSPFv3, the S1
and S2 bits in the LSA type determine the flooding scope. If AS-wide
flooding scope is chosen, the originating router should also
advertise area-scoped LSA(s) into any attached Not-So-Stubby Area
(NSSA) area(s). An OSPF router MAY advertise different capabilities
when both NSSA area-scoped LSA(s) and an AS-scoped LSA are
advertised. This allows functional capabilities to be limited in
scope. For example, a router may be an area border router but only
support traffic engineering (TE) in a subset of its attached areas.
The choice of flooding scope is made by the advertising router and is
a matter of local policy. The originating router MAY advertise
multiple RI LSAs with the same Instance ID as long as the flooding
scopes differ. TLV flooding-scope rules will be specified on a per-
TLV basis and MUST be specified in the accompanying specifications
for future Router Information LSA TLVs.
3. Backwards Compatibility
For backwards compatibility, previously advertised Router Information
TLVs SHOULD continue to be advertised in the first instance, i.e., 0,
of the Router Information LSA. If a Router Information TLV is
advertised in multiple Router Information LSA instances and the
multiple instance processing is not explicitly specified in the RFC
defining that Router Information TLV, the Router Instance TLV in the
Router Information LSA with the numerically smallest Instance ID will
be used and subsequent instances will be ignored.
4. Security Considerations
This document describes both a generic mechanism for advertising
router capabilities and TLVs for advertising informational and
functional capabilities. The capability TLVs are less critical than
the topology information currently advertised by the base OSPF
protocol. The security considerations for the generic mechanism are
dependent on the future application and, as such, should be described
as additional capabilities are proposed for advertisement. Security
considerations for the base OSPF protocol are covered in [OSPF] and
[OSPFv3].
5. IANA Considerations
5.1. OSPFv2 Opaque LSA Type Assignment
[RFC4970] defined the Router Information Opaque LSA as type 4 in the
"Opaque Link-State Advertisements (LSA) Option Types" registry. IANA
has updated the reference for that entry to point to this RFC.
5.2. OSPFv3 LSA Function Code Assignment
[RFC4970] created the registry for "OSPFv3 LSA Function Codes". IANA
has updated the reference for that registry to point to this RFC.
References within that registry to [RFC4970] have been updated to
point to this RFC; references to other RFCs are unchanged.
The definition and assignment policy has been updated as follows.
This registry is now comprised of the fields Value, LSA Function Code
Name, and Reference. The OSPFv3 LSA function code is defined in
Appendix A.4.2.1 of [OSPFv3]. Values 1-11 and 13-15 have already
been assigned. The OSPFv3 LSA function code 12 has been assigned to
the OSPFv3 Router Information (RI) LSA as defined herein.
+-----------+-------------------------------------+
| Range | Assignment Policy |
+-----------+-------------------------------------+
| 0 | Reserved (not to be assigned) |
| | |
| 16-255 | Unassigned (IETF Review) |
| | |
| 256-8175 | Reserved (No assignments) |
| | |
| 8176-8183 | Experimentation (No assignments) |
| | |
| 8184-8190 | Vendor Private Use (No assignments) |
| | |
| 8191 | Reserved (not to be assigned) |
+-----------+-------------------------------------+
Figure 7. OSPFv3 LSA Function Codes
o The assignment policy for OSPFv3 LSA function codes in the range
16-255 has changed and are now assigned subject to IETF Review.
New values are assigned through RFCs that have been shepherded
through the IESG as AD-Sponsored or IETF WG documents
[IANA-GUIDE].
o OSPFv3 LSA function codes in the range 8176-8183 are for
experimental use; these will not be registered with IANA and MUST
NOT be mentioned by RFCs.
o OSPFv3 LSAs with an LSA Function Code in the Vendor Private Use
range 8184-8190 MUST include the Enterprise Code [ENTERPRISE-CODE]
as the first 4 octets following the 20 octets of LSA header.
o If a new LSA Function Code is documented, the documentation MUST
include the valid combinations of the U, S2, and S1 bits for the
LSA. It SHOULD also describe how the Link State ID is to be
assigned.
5.3. OSPF RI LSA TLV Type Assignment
[RFC4970] created the registry for "OSPF Router Information (RI)
TLVs". IANA has updated the reference for this registry to point to
this RFC. References within that registry to [RFC4970] have been
updated to point to this RFC; references to other RFCs are unchanged.
The definition and assignment policy has been updated as follows.
The registry is now comprised of the fields Value, TLV Name, and
Reference. Values 3-9 have already been assigned. Value 1 has been
assigned to the Router Informational Capabilities TLV and value 2 has
been assigned to the Router Functional Capabilities TLV as defined
herein.
+-------------+-----------------------------------+
| Range | Assignment Policy |
+-------------+-----------------------------------+
| 0 | Reserved (not to be assigned) |
| | |
| 10-32767 | Unassigned (IETF Review) |
| | |
| 32768-32777 | Experimentation (No assignments) |
| | |
| 32778-65535 | Reserved (Not to be assigned) |
+-------------+-----------------------------------+
Figure 8. OSPF RI TLVs
o Types in the range 10-32767 are to be assigned subject to IETF
Review. New values are assigned through RFCs that have been
shepherded through the IESG as AD-Sponsored or IETF WG documents
[IANA-GUIDE].
o Types in the range 32778-65535 are reserved and are not to be
assigned at this time. Before any assignments can be made in this
range, there MUST be a Standards Track RFC that specifies IANA
Considerations that cover the range being assigned.
5.4. Registry for OSPF Router Informational Capability Bits
[RFC4970] created the registry for "OSPF Router Informational
Capability Bits". IANA has updated the reference for this registry
to point to this RFC. The definition and assignment policy has been
updated as follows.
o This registry is now comprised of the fields Bit Number,
Capability Name, and Reference.
o The values are defined in Section 2.6. All Router Informational
Capability TLV additions are to be assigned through IETF Review
[IANA-GUIDE].
5.5. Registry for OSPF Router Functional Capability Bits
IANA has created a subregistry for "OSPF Router Functional Capability
Bits" within the "Open Shortest Path First v2 (OSPFv2) Parameters"
registry. This subregistry is comprised of the fields Bit Number,
Capability Name, and Reference. Initially, the subregistry will be
empty but will be available for future capabilities. All Router
Functional Capability TLV additions are to be assigned through IETF
Review [IANA-GUIDE].
6. References
6.1. Normative References
[OPAQUE] Berger, L., Bryskin, I., Zinin, A., and R. Coltun, "The
OSPF Opaque LSA Option", RFC 5250, DOI 10.17487/RFC5250,
July 2008, <http://www.rfc-editor.org/info/rfc5250>.
[OSPF] Moy, J., "OSPF Version 2", STD 54, RFC 2328,
DOI 10.17487/RFC2328, April 1998,
<http://www.rfc-editor.org/info/rfc2328>.
[OSPFv3] Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF for
IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008,
<http://www.rfc-editor.org/info/rfc5340>.
[RFC-KEYWORDS]
Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC4970] Lindem, A., Ed., Shen, N., Vasseur, JP., Aggarwal, R., and
S. Shaffer, "Extensions to OSPF for Advertising Optional
Router Capabilities", RFC 4970, DOI 10.17487/RFC4970,
July 2007, <http://www.rfc-editor.org/info/rfc4970>.
[TE] Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering
(TE) Extensions to OSPF Version 2", RFC 3630,
DOI 10.17487/RFC3630, September 2003,
<http://www.rfc-editor.org/info/rfc3630>.
6.2. Informative References
[ENTERPRISE-CODE]
Eronen, P. and D. Harrington, "Enterprise Number for
Documentation Use", RFC 5612, DOI 10.17487/RFC5612,
August 2009, <http://www.rfc-editor.org/info/rfc5612>.
[EXP-TE] Srisuresh, P. and P. Joseph, "OSPF-xTE: Experimental
Extension to OSPF for Traffic Engineering", RFC 4973,
DOI 10.17487/RFC4973, July 2007,
<http://www.rfc-editor.org/info/rfc4973>.
[GRACE] Moy, J., Pillay-Esnault, P., and A. Lindem, "Graceful OSPF
Restart", RFC 3623, DOI 10.17487/RFC3623, November 2003,
<http://www.rfc-editor.org/info/rfc3623>.
[IANA-GUIDE]
Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226,
DOI 10.17487/RFC5226, May 2008,
<http://www.rfc-editor.org/info/rfc5226>.
[P2PLAN] Shen, N., Ed., and A. Zinin, Ed., "Point-to-Point Operation
over LAN in Link State Routing Protocols", RFC 5309,
DOI 10.17487/RFC5309, October 2008,
<http://www.rfc-editor.org/info/rfc5309>.
[STUB] Retana, A., Nguyen, L., Zinin, A., White, R., and D.
McPherson, "OSPF Stub Router Advertisement", RFC 6987,
DOI 10.17487/RFC6987, September 2013,
<http://www.rfc-editor.org/info/rfc6987>.
Acknowledgments
The idea for this work grew out of a conversation with Andrew Partan
and we thank him for his contribution. The authors thank Peter
Psenak for his review and helpful comments on early draft versions of
the document.
Special thanks to Tom Petch for providing the updated IANA text in
this document.
Comments from Abhay Roy, Vishwas Manral, Vivek Dubey, and Adrian
Farrel have been incorporated into later draft versions of this
document.
Thanks to Yingzhen Qu for acting as document shepherd.
Thanks to Chris Bowers, Alia Atlas, Shraddha Hegde, Dan Romascanu,
and Victor Kuarsingh for review of this document.
Authors' Addresses
Acee Lindem (editor)
Cisco Systems
301 Midenhall Way
Cary, NC 27513
United States
Email: acee@cisco.com
Naiming Shen
Cisco Systems
225 West Tasman Drive
San Jose, CA 95134
United States
Email: naiming@cisco.com
Jean-Philippe Vasseur
Cisco Systems
1414 Massachusetts Avenue
Boxborough, MA 01719
United States
Email: jpv@cisco.com
Rahul Aggarwal
Arktan
Email: raggarwa_1@yahoo.com
Scott Shaffer
Akamai
8 Cambridge Center
Cambridge, MA 02142
United States
Email: sshaffer@akamai.com
ISO Plain Language
On this page
§1Why Routers Should Advertise Their Capabilities
It is useful for routers in an OSPFv2 or OSPFv3 routing domain to know the capabilities of their neighbours and of other routers in the same domain, for both advertising and discovering OSPF capabilities.
OSPF already has a place for this: the options field in link state advertisements and in Hello packets carries optional router capabilities. In OSPFv2, however, every bit in that field has been allocated, so no further optional capability can be advertised there. This document therefore extends OSPF to advertise optional capabilities through Opaque LSAs in OSPFv2 and through LSAs with a unique type in OSPFv3.
For the capabilities OSPF already has, backwards compatibility rules mean this new advertisement is used mainly for information. For future OSPF extensions, the RFC says it may be used as the only way to advertise and discover a capability.
OSPF has a small set of flags in its advertisements that say what a router can do, but in OSPFv2 every one of those flags is already taken. This RFC adds a separate advertisement so that new features can announce themselves without changing the old one.
§2.1The Router Information LSA
In OSPFv2, a router advertises a link-scoped, area-scoped or AS-scoped Opaque LSA. The RI LSA has an Opaque type of 4, and the Opaque ID carries the RI LSA instance ID, with the first instance always having an instance ID of 0. The Opaque LSA type in the header is 9, 10 or 11 depending on the scope: link, area or AS.
In OSPFv3, the RI LSA has a function code of 12, and the S1 and S2 bits in the LSA type depend on the flooding scope wanted. The U bit is set, meaning the LSA is flooded even if the receiver does not understand it. The link state ID holds the instance ID.
In both versions, the first instance, instance 0, should always carry the Router Informational Capabilities TLV and, when it is advertised, the Router Functional Capabilities TLV. Later instances carry information that does not fit in the first one. OSPFv3 routers may advertise several RI LSAs per flooding scope.
The body of the advertisement holds one or more nested type, length, value records, the same format used by the traffic engineering extensions to OSPF.
The new advertisement comes in two shapes, one for each version of OSPF, but it carries the same kind of information in both. It carries a list of records, and the first advertisement of the list is the one that holds the standard set of capabilities.
| Field | Name | Size | Value | Description |
|---|---|---|---|---|
LS-AGE | LS age | 2 bytes | Age of the link state advertisement. | |
OPTIONS | Options | 1 byte | The OSPF options field. | |
LINK-STATE-TYPE | Link State Type | 1 byte | 9 for link scope, 10 for area scope, 11 for AS scope. | |
OPAQUE-TYPE | Opaque Type | 1 byte | 4 | Always 4 for the Router Information LSA. |
OPAQUE-ID | Opaque ID | 3 bytes | The RI LSA instance ID; the first instance is 0. | |
ADVERTISING-ROUTER | Advertising Router | 4 bytes | The router that originated the LSA. | |
LS-SEQUENCE-NUMBER | LS sequence number | 4 bytes | Sequence number of the LSA instance. | |
LS-CHECKSUM | LS checksum | 2 bytes | Checksum over the LSA. | |
LENGTH | Length | 2 bytes | Length of the LSA in octets. |
§2.3The TLV Format
The body of an RI LSA consists of one or more nested type, length, value records. Each record has a 16-bit Type field, a 16-bit Length field and a value. The Length field gives the length of the value in octets, so a record with no value has a length of 0. The record is padded to four-octet alignment, and the padding is not counted in the Length field: a three-octet value has a length of 3 but a total size of eight octets. Nested records are aligned the same way, and the padding octets carry undefined bits. A receiver ignores record types it does not recognise.
The RFC also sets a rule for future work: any new RI LSA record must state in its own specification whether it applies to OSPFv2 only, OSPFv3 only, or to both.
Each capability is written in a small record that says what kind of capability it is, how long its value is, and then the value itself. Records are padded so that the next one starts on a neat boundary, and a router quietly skips any record type it does not know.
§2.4Informational Capabilities
A router that advertises an RI LSA may include the Router Informational Capabilities TLV. If it does, it must be the first record in the first instance of the advertisement. The record must accurately reflect the router's capabilities in the scope advertised. These capabilities have no effect on how OSPF runs; they are purely for information.
The record's Type field is set to 1. Its Length field gives the length of the value in octets and is a multiple of four, initially 4, meaning four octets of capability bits. The value is a sequence of capability bits rounded up to a multiple of four octets and padded with undefined bits. The bits are numbered from left to right, with the most significant bit being bit 0.
The RFC assigns six bits: bit 0 is OSPF graceful restart capable, bit 1 is OSPF graceful restart helper, bit 2 is OSPF Stub Router support, bit 3 is OSPF Traffic Engineering support, bit 4 is OSPF point-to-point over LAN, and bit 5 is OSPF Experimental TE. Bits 6 to 31 are unassigned and are reserved for future assignment through IETF Review. The record may be followed by optional records that give more detail about a capability.
This record is a checklist of extra features the router supports, such as being able to restart without dropping traffic or taking part in traffic engineering. The list is only informative, so other routers read it but do not change their behaviour because of it.
- 0Graceful restart capable — The router can restart without losing its state.
- 1Graceful restart helper — The router can help a restarting neighbour.
- 2Stub Router support — The router can advertise itself as a stub router.
- 3Traffic Engineering support — The router takes part in traffic engineering.
- 4Point-to-point over LAN — The router supports point-to-point operation over a LAN.
- 5Experimental TE — The router supports the experimental traffic engineering extension.
- 6-31Unassigned — Reserved for future assignment through IETF Review.
§2.6Functional Capabilities
The RFC also defines a Router Functional Capabilities TLV. A router advertising an RI LSA may include it, and if it does, it must be in the first instance of the advertisement. Unlike the informational record, this one must reflect the router's actual functional capabilities, because the information will be used to dictate OSPF protocol operation in the flooding scope of the advertisement that carries it. If the record is absent, or its length does not include the assigned bit for a capability, that capability is implicitly advertised as not supported by the advertising router.
The format matches the informational record: the Type field is set to 2, the Length field is a multiple of four octets and initially 4, and the value is a sequence of capability bits padded with undefined bits and numbered from the most significant bit as bit 0. The record may be followed by optional records that further specify a capability.
The difference matters. The OSPF extensions advertised in the functional record may be used by other OSPF routers to dictate protocol operation, and the specifications for those capabilities must describe protocol behaviour and address backwards compatibility. The RFC leaves the functional capability bits empty for now: the registry for them starts empty and is available for future capabilities, with additions assigned through IETF Review.
Some features change the rules of the protocol itself, and those belong in a separate record. A router that does not include a feature in that record is treated as not supporting it, so other routers can rely on the list before they rely on the feature.
| Property | Informational TLV | Functional TLV |
|---|---|---|
| Type value THIS RFC | 1 | 2 |
| Effect on OSPF | None; purely informational | May dictate protocol operation |
| Where it sits | First TLV of instance 0 | In the first instance of the LSA |
| If absent | No capabilities listed | Every capability is treated as unsupported |
| Length field | Multiple of 4 octets, initially 4 | Multiple of 4 octets, initially 4 |
§2.7Choosing a Flooding Scope
The flooding scope of an RI LSA is set by its type. In OSPFv2, a type 9 Opaque LSA is link-scoped, type 10 is area-scoped and type 11 is AS-scoped. In OSPFv3, the S1 and S2 bits in the LSA type determine the scope. If AS-wide flooding is chosen, the originating router should also advertise area-scoped LSAs into any attached Not-So-Stubby Area, and a router may advertise different capabilities in those area-scoped advertisements than in the AS-scoped one. That lets a capability be limited in scope: a router that is an area border router might support traffic engineering in only some of the areas it touches.
The scope is the advertising router's choice and is a matter of local policy. The originating router may advertise several RI LSAs with the same instance ID as long as their scopes differ. The rules about which scopes a given record may be flooded in will be set record by record, and each future record's specification has to state them.
Each advertisement says how far it should travel: to the routers on one link, to the routers in one area, or to every router in the network. A router chooses this itself, and it can send different capabilities to different parts of the network when a feature is only supported in some of them.
- Link scopeOSPFv2 type 9: the LSA stays on the link it was sent on.
- Area scopeOSPFv2 type 10: the LSA reaches the routers of one area.
- AS scopeOSPFv2 type 11: the LSA reaches every router in the autonomous system.
- Same instance, different scopesA router may advertise several RI LSAs with the same instance ID if their scopes differ.
§4Security Considerations
The RFC describes both a general mechanism for advertising router capabilities and the two records used for informational and functional capabilities. The capability records are less critical than the topology information that the base OSPF protocol already advertises. The security considerations for the general mechanism depend on how it is used in future, and should therefore be described as further capabilities are proposed. The security considerations for OSPF itself are covered in the base specifications for OSPFv2 and OSPFv3.
On backwards compatibility, previously advertised Router Information records should continue to be advertised in the first instance of the advertisement, instance 0. If a record is advertised in more than one instance, and the RFC that defines it does not say how multiple instances are handled, then the instance with the numerically smallest instance ID is used and the later instances are ignored.
The capability list is less sensitive than the routing information itself, so the RFC leaves the detailed security analysis to the specifications that add new capabilities. It also keeps old advertisements working: a capability that was already advertised stays in the first advertisement, and if the same capability turns up in several, the first one by number wins.
§5Registry Assignments
The RFC asks IANA to point the reference for the OSPFv2 Opaque LSA type registry entry at this document instead of RFC 4970, and to do the same for the registry of OSPFv3 LSA function codes and the registry of Router Information record types.
For OSPFv3 LSA function codes, values 1 to 11 and 13 to 15 have already been assigned, and value 12 is assigned to the OSPFv3 Router Information LSA. The RFC also sets out the assignment policy: value 0 is reserved and not to be assigned, values 16 to 255 are unassigned and are now assigned through IETF Review rather than by Standards Action, values 256 to 8175 are reserved with no assignments, values 8176 to 8183 are for experimentation and must not be mentioned in RFCs, values 8184 to 8190 are for vendor private use, and value 8191 is reserved. An LSA with a function code in the vendor private use range must carry the Enterprise Code as the first four octets after the 20 octets of the LSA header. A new function code's documentation must state the valid combinations of the U, S2 and S1 bits and should say how the link state ID is assigned.
For Router Information record types, values 3 to 9 have already been assigned, value 1 is the Router Informational Capabilities record and value 2 is the Router Functional Capabilities record. Value 0 is reserved, values 10 to 32767 are unassigned and are assigned through IETF Review, values 32768 to 32777 are for experimentation, and values 32778 to 65535 are reserved until a Standards Track RFC covers them. Two further registries hold the capability bits themselves: one for the informational capability bits and one, newly created as a subregistry of the OSPFv2 parameters, for the functional capability bits, which starts out empty.
The RFC sorts out the numbering: which numbers are free for new capabilities, which are reserved, and which are for experiments or for vendors. It also decides that new entries are reviewed by the IETF rather than simply announced by the IANA.