RFC 7770 PROPOSED STANDARD ROUTING · OSPF · CAPABILITIES

OSPF Router Capabilities: Extensions to OSPF for Advertising Optional Router Capabilities

One OSPF advertisement in which a router lists the optional features it supports.

On rfc-editor.org ↗
PUBLISHED
February 2016
AUTHORS
A. Lindem, N. Shen, JP. Vasseur, R. Aggarwal, S. Shaffer
STREAM
IETF
BUILDS ON
RFC 4970 — OSPF Router Capabilities
OSPFV2 RI LSA OPAQUE TYPE
4
OSPFV3 RI LSA FUNCTION CODE
12
INFORMATIONAL CAPABILITIES TLV TYPE
1
FUNCTIONAL CAPABILITIES TLV TYPE
2
ASSIGNED INFORMATIONAL BITS
Bits 0 to 5; bits 6 to 31 unassigned
TLV ALIGNMENT
4 octets, padding not counted in the length
DOI
10.17487/RFC7770
ERRATA
Reported errata

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
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
PROBLEMRouters in an OSPF domain often need to know what optional features their neighbours support, but in OSPFv2 every bit of the options field in the advertisements has already been allocated.
MECHANISMThe RFC defines the Router Information LSA, a new advertisement that carries capability bits in type, length, value records. In OSPFv2 it is an Opaque LSA of type 4, and in OSPFv3 it is an LSA with function code 12.
WHY IT MATTERSThe RFC replaces RFC 4970, adding support for more than one instance of the advertisement and a second record for capabilities that change how the protocol behaves.

§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.

OSPFv2 Router Information Opaque LSA header (RFC 7770, Figure 1)
OSPFv2 Router Information Opaque LSA
FieldNameSizeValueDescription
LS-AGELS age2 bytesAge of the link state advertisement.
OPTIONSOptions1 byteThe OSPF options field.
LINK-STATE-TYPELink State Type1 byte9 for link scope, 10 for area scope, 11 for AS scope.
OPAQUE-TYPEOpaque Type1 byte4Always 4 for the Router Information LSA.
OPAQUE-IDOpaque ID3 bytesThe RI LSA instance ID; the first instance is 0.
ADVERTISING-ROUTERAdvertising Router4 bytesThe router that originated the LSA.
LS-SEQUENCE-NUMBERLS sequence number4 bytesSequence number of the LSA instance.
LS-CHECKSUMLS checksum2 bytesChecksum over the LSA.
LENGTHLength2 bytesLength 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.

Assigned informational capability bits
  • 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.

The two capability records side by side
PropertyInformational TLVFunctional TLV
Type value THIS RFC12
Effect on OSPFNone; purely informationalMay dictate protocol operation
Where it sitsFirst TLV of instance 0In the first instance of the LSA
If absentNo capabilities listedEvery capability is treated as unsupported
Length fieldMultiple of 4 octets, initially 4Multiple 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.

How far a Router Information LSA can travel
  • 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.

§9References