RFC 7684 PROPOSED STANDARD ROUTING · OSPF · EXTENSIONS

OSPFv2 Extended LSAs: OSPFv2 Prefix/Link Attribute Advertisement

Optional TLV-based OSPFv2 LSAs for advertising additional attributes about prefixes and links.

On rfc-editor.org ↗
PUBLISHED
November 2015
AUTHORS
P. Psenak, H. Gredler, R. Shakir, W. Henderickx, J. Tantsura, A. Lindem
STREAM
IETF
EXTENDED PREFIX OPAQUE TYPE
7
EXTENDED LINK OPAQUE TYPE
8
EXTENDED PREFIX LS TYPE
10 or 11
EXTENDED LINK LS TYPE
10 (area-local)
TLV ALIGNMENT
4 octets, zero padding
SUPPORTED ADDRESS FAMILY VALUE
0 (IPv4 unicast)
DOI
10.17487/RFC7684
ERRATA
Reported errata

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                         P. Psenak
Request for Comments: 7684                                 Cisco Systems
Category: Standards Track                                     H. Gredler
ISSN: 2070-1721                                              Independent
                                                               R. Shakir
                                               Jive Communications, Inc.
                                                           W. Henderickx
                                                          Alcatel-Lucent
                                                             J. Tantsura
                                                                Ericsson
                                                               A. Lindem
                                                           Cisco Systems
                                                           November 2015


               OSPFv2 Prefix/Link Attribute Advertisement

Abstract

   OSPFv2 requires functional extension beyond what can readily be done
   with the fixed-format Link State Advertisements (LSAs) as described
   in RFC 2328.  This document defines OSPFv2 Opaque LSAs based on Type-
   Length-Value (TLV) tuples that can be used to associate additional
   attributes with prefixes or links.  Depending on the application,
   these prefixes and links may or may not be advertised in the fixed-
   format LSAs.  The OSPFv2 Opaque LSAs are optional and fully backward
   compatible.

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/rfc7684.

Copyright Notice

   Copyright (c) 2015 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.

   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.

Table of Contents

   1. Introduction ....................................................3
      1.1. Requirements Notation ......................................3
   2. OSPFv2 Extended Prefix Opaque LSA ...............................3
      2.1. OSPFv2 Extended Prefix TLV .................................5
   3. OSPFv2 Extended Link Opaque LSA .................................8
      3.1. OSPFv2 Extended Link TLV ...................................9
   4. Backward Compatibility .........................................10
   5. Security Considerations ........................................10
   6. IANA Considerations ............................................11
      6.1. OSPFv2 Extended Prefix Opaque LSA TLVs Registry ...........11
      6.2. OSPFv2 Extended Prefix TLV Sub-TLVs Registry ..............12
      6.3. OSPFv2 Extended Prefix TLV Flags Registry .................12
      6.4. OSPFv2 Extended Link Opaque LSA TLVs Registry .............12
      6.5. OSPFv2 Extended Link TLV Sub-TLVs Registry ................13
   7. References .....................................................13
      7.1. Normative References ......................................13
      7.2. Informative References ....................................14
   Acknowledgements ..................................................14
   Authors' Addresses ................................................15

1.  Introduction

   OSPFv2 requires functional extension beyond what can readily be done
   with the fixed-format Link State Advertisements (LSAs) as described
   in RFC 2328 [OSPFV2].  This document defines OSPFv2 Opaque LSAs based
   on Type-Length-Value (TLV) tuples that can be used to associate
   additional attributes with prefixes or links.  Depending on the
   application, these prefixes and links may or may not be advertised in
   the fixed-format LSAs.  The OSPFv2 Opaque LSAs are optional and fully
   backward compatible.  This is in contrast to the approach taken in
   OSPFv3 [OSPFv3-EXTEND] where the existing LSAs will be replaced by
   TLV-based extended LSAs.

   New requirements such as source/destination routing, route tagging,
   and segment routing necessitate this extension.

   This specification defines the following OSPFv2 Opaque LSAs:

   1.  OSPFv2 Extended Prefix Opaque LSA - Allows advertisement of
       additional attributes for prefixes advertised in Router-LSAs,
       Network-LSAs, Summary-LSAs (IP network), NSSA-LSAs, and
       AS-external-LSAs [OSPFV2][RFC3101].

   2.  OSPFv2 Extended Link Opaque LSA - Allows advertisement of
       additional attributes for links advertised in Router-LSAs.

   Additionally, the following TLVs are defined:

   1.  OSPFv2 Extended Prefix TLV - Top-level TLV advertising attributes
       for a prefix in the OSPFv2 Extended Prefix Opaque LSA.

   2.  OSPFv2 Extended Link TLV - Top-level TLV advertising attributes
       for a link in the OSPFv2 Extended Link Opaque LSA.

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 [KEYWORDS].

2.  OSPFv2 Extended Prefix Opaque LSA

   The OSPFv2 Extended Prefix Opaque LSA is used to advertise additional
   prefix attributes.  Opaque LSAs are described in [OPAQUE].

   Multiple OSPFv2 Extended Prefix Opaque LSAs can be advertised by an
   OSPFv2 router.  The flooding scope of the OSPFv2 Extended Prefix
   Opaque LSA depends on the scope of the advertised prefixes and is
   under the control of the advertising router.  In some cases (e.g.,
   mapping server deployment [SEGMENT-ROUTING]), the LSA flooding scope
   may be greater than the scope of the corresponding prefixes.

   The format of the OSPFv2 Extended Prefix Opaque LSA 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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |            LS age             |     Options   |   LS Type     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Opaque Type  |                 Opaque ID                     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                     Advertising Router                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                     LS sequence number                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |         LS checksum           |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +-                            TLVs                             -+
      |                             ...                               |

                     OSPFv2 Extended Prefix Opaque LSA

   The Opaque Type used by the OSPFv2 Extended Prefix Opaque LSA is 7.
   The Opaque Type is used to differentiate the various types of OSPFv2
   Opaque LSAs and is described in Section 3 of [OPAQUE].  The LS Type
   may be 10 or 11, indicating that the Opaque LSA flooding scope is
   area-local (10) or AS-wide (11) [OPAQUE].  The LSA Length field
   [OSPFV2] represents the total length (in octets) of the Opaque LSA,
   including the LSA header and all TLVs (including padding).

   The Opaque ID field is an arbitrary value used to maintain multiple
   OSPFv2 Extended Prefix Opaque LSAs.  For OSPFv2 Extended Prefix
   Opaque LSAs, the Opaque ID has no semantic significance other than to
   differentiate OSPFv2 Extended Prefix Opaque LSAs originated by the
   same OSPFv2 router.  If multiple OSPFv2 Extended Prefix Opaque LSAs
   include the same prefix, the attributes from the Opaque LSA with the
   lowest Opaque ID SHOULD be used.

   The format of the TLVs within the body of the OSPFv2 Extended Prefix
   Opaque LSA is the same as the format used by the Traffic Engineering
   Extensions to OSPFv2 [TE].  The variable TLV section consists of one
   or more nested TLV tuples.  Nested TLVs are also referred to as sub-
   TLVs.  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                              |
                                     o
                                     o
                                     o
      |                                                               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                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
   32-bit aligned.  For example, a 1-byte 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 zeros.

2.1.  OSPFv2 Extended Prefix TLV

   The OSPFv2 Extended Prefix TLV is used to advertise additional
   attributes associated with the prefix.  Multiple OSPFv2 Extended
   Prefix TLVs MAY be advertised in each OSPFv2 Extended Prefix Opaque
   LSA.  However, since the Opaque LSA type defines the flooding scope,
   the LSA flooding scope MUST satisfy the application-specific
   requirements for all the prefixes included in a single OSPFv2
   Extended Prefix Opaque LSA.  The OSPFv2 Extended Prefix TLV has the
   following format:

     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            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Route Type   | Prefix Length |     AF        |     Flags     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                     Address Prefix (variable)                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                      Sub-TLVs (variable)                      |
    +-                                                             -+
    |                             ...                               |

                        OSPFv2 Extended Prefix TLV

   Type
      The TLV type.  The value is 1 for this TLV type.

   Length
      Variable, dependent on sub-TLVs.

   Route Type
      The type of the OSPFv2 route.  If the route type is 0
      (Unspecified), the information inside the OSPFv2 External Prefix
      TLV applies to the prefix regardless of prefix's route type.  This
      is useful when prefix-specific attributes are advertised by an
      external entity that is not aware of the route type associated
      with the prefix.  Supported types are:

         0 - Unspecified

         1 - Intra-Area

         3 - Inter-Area

         5 - Autonomous System (AS) External

         7 - Not-So-Stubby Area (NSSA) External

      These route types correspond directly to the OSPFv2 LSAs types as
      defined in the "OSPFv2 Link State (LS) Type" registry in
      <http://www.iana.org/assignments/ospfv2-parameters>.
      Specification of route types other than those defined will prevent
      correlation with existing OSPFv2 LSAs and is beyond the scope of
      this specification.

   Prefix Length
      Length of prefix in bits.

   AF
      Address family for the prefix.  Currently, the only supported
      value is 0 for IPv4 unicast.  The inclusion of address family in
      this TLV allows for future extension.

   Flags
      This one-octet field contains flags applicable to the prefix.
      Supported Flags include:

         0x80 - A-Flag (Attach Flag): An Area Border Router (ABR)
         generating an OSPFv2 Extended Prefix TLV for an inter-area
         prefix that is locally connected or attached in another
         connected area SHOULD set this flag.

         0x40 - N-Flag (Node Flag): Set when the prefix identifies the
         advertising router, i.e., the prefix is a host prefix
         advertising a globally reachable address typically associated
         with a loopback address.  The advertising router MAY choose to
         not set this flag even when the above conditions are met.  If
         the flag is set and the prefix length is not a host prefix,
         then the flag MUST be ignored.  The flag is preserved when the
         OSPFv2 Extended Prefix Opaque LSA is propagated between areas.

   Address Prefix
      For the address family IPv4 unicast, the prefix itself is encoded
      as a 32-bit value.  The default route is represented by a prefix
      of length 0.  Prefix encoding for other address families is beyond
      the scope of this specification.

   If this TLV is advertised multiple times for the same prefix in the
   same OSPFv2 Extended Prefix Opaque LSA, only the first instance of
   the TLV is used by receiving OSPFv2 routers.  This situation SHOULD
   be logged as an error.

   If this TLV is advertised multiple times for the same prefix in
   different OSPFv2 Extended Prefix Opaque LSAs originated by the same
   OSPFv2 router, the OSPFv2 advertising router is re-originating OSPFv2
   Extended Prefix Opaque LSAs for multiple prefixes and is most likely
   repacking Extended-Prefix-TLVs in OSPFv2 Extended Prefix Opaque LSAs.
   In this case, the Extended-Prefix-TLV in the OSPFv2 Extended Prefix
   Opaque LSA with the smallest Opaque ID is used by receiving OSPFv2
   routers.  This situation may be logged as a warning.

   It is RECOMMENDED that OSPFv2 routers advertising OSPFv2 Extended
   Prefix TLVs in different OSPFv2 Extended Prefix Opaque LSAs
   re-originate these LSAs in ascending order of Opaque ID to minimize
   the disruption.

   If this TLV is advertised multiple times for the same prefix in
   different OSPFv2 Extended Prefix Opaque LSAs originated by different
   OSPFv2 routers, the application using the information is required to
   determine which OSPFv2 Extended Prefix Opaque LSA is used.  For
   example, the application could prefer the LSA providing the best path
   to the prefix.

   This document creates a registry for OSPFv2 Extended Prefix sub-TLVs
   in Section 6.

3.  OSPFv2 Extended Link Opaque LSA

   The OSPFv2 Extended Link Opaque LSA is used to advertise additional
   link attributes.  Opaque LSAs are described in [OPAQUE].

   The OSPFv2 Extended Link Opaque LSA has an area flooding scope.
   Multiple OSPFv2 Extended Link Opaque LSAs can be advertised by a
   single router in an area.

   The format of the OSPFv2 Extended Link Opaque LSA 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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |            LS age             |     Options   |   LS Type     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Opaque Type  |                   Opaque ID                   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                     Advertising Router                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                     LS sequence number                        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |         LS checksum           |             Length            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      +-                            TLVs                             -+
      |                             ...                               |

                      OSPFv2 Extended Link Opaque LSA

   The Opaque Type used by the OSPFv2 Extended Link Opaque LSA is 8.
   The LS Type is 10, indicating that the Opaque LSA flooding scope is
   area-local [OPAQUE].  The Opaque Type is used to differentiate the
   various types of OSPFv2 Opaque LSAs and is described in Section 3 of
   [OPAQUE].  The LSA Length field [OSPFV2] represents the total length
   (in octets) of the Opaque LSA, including the LSA header and all TLVs
   (including padding).

   The Opaque ID field is an arbitrary value used to maintain multiple
   OSPFv2 Extended Prefix Opaque LSAs.  For OSPFv2 Extended Link Opaque
   LSAs, the Opaque ID has no semantic significance other than to
   differentiate OSPFv2 Extended Link Opaque LSAs originated by the same
   OSPFv2 router.  If multiple OSPFv2 Extended Link Opaque LSAs include
   the same link, the attributes from the Opaque LSA with the lowest
   Opaque ID will be used.

   The format of the TLVs within the body of the OSPFv2 Extended Link
   Opaque LSA is the same as described in Section 2.

3.1.  OSPFv2 Extended Link TLV

   The OSPFv2 Extended Link TLV is used to advertise various attributes
   of the link.  It describes a single link and is constructed of a set
   of sub-TLVs.  There are no ordering requirements for the sub-TLVs.
   Only one OSPFv2 Extended Link TLV SHALL be advertised in each OSPFv2
   Extended Link Opaque LSA, allowing for fine granularity changes in
   the topology.

   The OSPFv2 Extended Link TLV has following format:

       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            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     Link Type |                  Reserved                     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                            Link ID                            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                           Link Data                           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                      Sub-TLVs (variable)                      |
      +-                                                             -+
      |                             ...                               |

                         OSPFv2 Extended Link TLV

   Type
      The TLV type.  The value is 1 for this TLV type.

   Length
      Variable, dependent on sub-TLVs.

   Link Type
      Link Type is defined in Section A.4.2 of [OSPFV2] and in the
      "OSPFv2 Router LSA Link Type (Value 1)" registry at
      <http://www.iana.org/assignments/ospfv2-parameters>.
      Specification of link types other than those defined will prevent
      correlation with existing OSPFv2 Router-LSA links and is beyond
      the scope this specification.

   Link ID
      Link ID is defined in Section A.4.2 of [OSPFV2].

   Link Data
      Link Data is defined in Section A.4.2 of [OSPFV2].

   If this TLV is advertised multiple times in the same OSPFv2 Extended
   Link Opaque LSA, only the first instance of the TLV is used by
   receiving OSPFv2 routers.  This situation SHOULD be logged as an
   error.

   If this TLV is advertised multiple times for the same link in
   different OSPFv2 Extended Link Opaque LSAs originated by the same
   OSPFv2 router, the OSPFv2 Extended Link TLV in the OSPFv2 Extended
   Link Opaque LSA with the smallest Opaque ID is used by receiving
   OSPFv2 routers.  This situation may be logged as a warning.

   It is RECOMMENDED that OSPFv2 routers advertising OSPFv2 Extended
   Link TLVs in different OSPFv2 Extended Link Opaque LSAs re-originate
   these LSAs in ascending order of Opaque ID to minimize the
   disruption.

   This document creates a registry for OSPFv2 Extended Link sub-TLVs in
   Section 6.

4.  Backward Compatibility

   Since Opaque OSPFv2 LSAs are optional and backward compatible
   [OPAQUE], the extensions described herein are fully backward
   compatible.  However, future OSPFv2 applications utilizing these
   extensions MUST address backward compatibility of the corresponding
   functionality.

5.  Security Considerations

   In general, new LSAs defined in this document are subject to the same
   security concerns as those described in [OSPFV2] and [OPAQUE].

   OSPFv2 applications utilizing these OSPFv2 extensions must define the
   security considerations relating to those applications in the
   specifications corresponding to those applications.

   Additionally, implementations must assure that malformed TLV and sub-
   TLV permutations are detected and do not provide a vulnerability for
   attackers to crash the OSPFv2 router or routing process.  Malformed
   LSAs MUST NOT be stored in the Link State Database (LSDB),
   acknowledged, or reflooded.  Reception of malformed LSAs SHOULD be
   counted and/or logged for further analysis.  In this context, a
   malformed LSA is one that cannot be parsed due to a TLV or sub-TLV
   overrunning the end of the subsuming LSA, TLV, or sub-TLV or where
   there is data remaining to be parsed but the length of the remaining
   data is less than the size of a TLV header.

6.  IANA Considerations

   This specification updates the "Opaque Link-State Advertisements
   (LSA) Option Types" registry with the following values:

   o  7 - OSPFv2 Extended Prefix Opaque LSA

   o  8 - OSPFv2 Extended Link Opaque LSA

   This specification also creates five new registries:

   o  OSPFv2 Extended Prefix Opaque LSA TLVs

   o  OSPFv2 Extended Prefix TLV Sub-TLVs

   o  OSPFv2 Extended Prefix TLV Flags

   o  OSPFv2 Extended Link Opaque LSA TLVs

   o  OSPFv2 Extended Link TLV Sub-TLVs

6.1.  OSPFv2 Extended Prefix Opaque LSA TLVs Registry

   The "OSPFv2 Extend Prefix Opaque LSA TLVs" registry defines top-level
   TLVs for OSPFv2 Extended Prefix Opaque LSAs and has been added to the
   "Open Shortest Path First v2 (OSPFv2) Parameters" registry.  New
   values can be allocated via IETF Review or IESG Approval [RFC5226].

   The following initial values have been allocated:

   o  0 - Reserved

   o  1 - OSPFv2 Extended Prefix TLV

   Types in the range 32768-33023 are for Experimental Use; these will
   not be registered with IANA and MUST NOT be mentioned by RFCs.

   Types in the range 33024-65535 are not to be assigned at this time.
   Before any assignments can be made in the 33024-65535 range, there
   MUST be an IETF specification that specifies IANA considerations
   covering the range being assigned.

6.2.  OSPFv2 Extended Prefix TLV Sub-TLVs Registry

   The "OSPFv2 Extended Prefix TLV Sub-TLVs" registry defines sub-TLVs
   at any level of nesting for OSPFv2 Extended Prefix TLVs and has been
   added to the "Open Shortest Path First v2 (OSPFv2) Parameters"
   registry.  New values can be allocated via IETF Review or IESG
   Approval.

   The following initial value has been allocated:

   o  0 - Reserved

   Types in the range 32768-33023 are for Experimental Use; these will
   not be registered with IANA and MUST NOT be mentioned by RFCs.

   Types in the range 33024-65535 are not to be assigned at this time.
   Before any assignments can be made in the 33024-65535 range, there
   MUST be an IETF specification that specifies IANA considerations
   covering the range being assigned.

6.3.  OSPFv2 Extended Prefix TLV Flags Registry

   The "OSPFv2 Extended Prefix TLV Flags" registry defines the bits in
   the 8-bit OSPFv2 Extended Prefix TLV Flags (Section 2.1).  This
   specification defines the A (0x80) and N (0x40) bits.  This registry
   has been added to the "Open Shortest Path First v2 (OSPFv2)
   Parameters" registry.  New values can be allocated via IETF Review or
   IESG Approval.

6.4.  OSPFv2 Extended Link Opaque LSA TLVs Registry

   The "OSPFv2 Extended Link Opaque LSA TLVs" registry defines top-level
   TLVs for OSPFv2 Extended Link Opaque LSAs and has been added to the
   "Open Shortest Path First v2 (OSPFv2) Parameters" registry.  New
   values can be allocated via IETF Review or IESG Approval.

   The following initial values have been allocated:

   o  0 - Reserved

   o  1 - OSPFv2 Extended Link TLV

   Types in the range 32768-33023 are for Experimental Use; these will
   not be registered with IANA and MUST NOT be mentioned by RFCs.

   Types in the range 33024-65535 are not to be assigned at this time.
   Before any assignments can be made in the 33024-65535 range, there
   MUST be an IETF specification that specifies IANA considerations
   covering the range being assigned.

6.5.  OSPFv2 Extended Link TLV Sub-TLVs Registry

   The "OSPFv2 Extended Link TLV Sub-TLVs" registry defines sub-TLVs at
   any level of nesting for OSPFv2 Extended Link TLVs and has been added
   to the "Open Shortest Path First v2 (OSPFv2) Parameters" registry.
   New values can be allocated via IETF Review or IESG Approval.

   The following initial value has been allocated:

   o  0 - Reserved

   Types in the range 32768-33023 are for Experimental Use; these will
   not be registered with IANA and MUST NOT be mentioned by RFCs.

   Types in the range 33024-65535 are not to be assigned at this time.
   Before any assignments can be made in the 33024-65535 range, there
   MUST be an IETF specification that specifies IANA considerations
   covering the range being assigned.

7.  References

7.1.  Normative References

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

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

   [OSPFV2]   Moy, J., "OSPF Version 2", STD 54, RFC 2328,
              DOI 10.17487/RFC2328, April 1998,
              <http://www.rfc-editor.org/info/rfc2328>.

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

7.2.  Informative References

   [OSPFv3-EXTEND]
              Lindem, A., Mirtorabi, S., Roy, A., and F. Baker, "OSPFv3
              LSA Extendibility", Work in Progress, draft-ietf-ospf-
              ospfv3-lsa-extend-08, October 2015.

   [RFC3101]  Murphy, P., "The OSPF Not-So-Stubby Area (NSSA) Option",
              RFC 3101, DOI 10.17487/RFC3101, January 2003,
              <http://www.rfc-editor.org/info/rfc3101>.

   [RFC5226]  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>.

   [SEGMENT-ROUTING]
              Psenak, P., Previdi, S., Filsfils, C., Gredler, H.,
              Shakir, R., Henderickx, W., and J. Tantsura, "OSPF
              Extensions for Segment Routing", Work in Progress,
              draft-ietf-ospf-segment-routing-extensions-05, June 2015.

Acknowledgements

   We would like to thank Anton Smirnov for his contribution.

   Thanks to Tony Przygienda for his review and comments.

   Thanks to Wim Henderickx, Greg Harkins, Peter Psenak, Eric Wu,
   Shraddha Hegde, and Csaba Mate for their responses to the
   implementation survey.

   Thanks to Tom Petch and Chris Bowers for review and comments.

   Thanks to Alia Atlas and Alvaro Retana for their AD review and
   comments.

   Thanks to Carlos Pignataro and Ron Bonica for Operations Directorate
   review and comments.

   Thanks to Suresh Krishnan for the Gen-ART review and comments.

   Thanks to Ben Campbell, Kathleen Moriarty, and Barry Leiba for IESG
   review and comments.

Authors' Addresses

   Peter Psenak
   Cisco Systems
   Apollo Business Center
   Mlynske nivy 43
   Bratislava, 821 09
   Slovakia
   Email: ppsenak@cisco.com


   Hannes Gredler
   Independent
   Email: hannes@gredler.at


   Rob Shakir
   Jive Communications, Inc.
   1275 W 1600 N, Suite 100
   Orem, UT  84057
   United States
   Email: rjs@rob.sh


   Wim Henderickx
   Alcatel-Lucent
   Copernicuslaan
   Antwerp, 2018  94089
   Belgium
   Email: wim.henderickx@alcatel-lucent.com


   Jeff Tantsura
   Ericsson
   300 Holger Way
   San Jose, CA  95134
   United States
   Email: jeff.tantsura@ericsson.com


   Acee Lindem
   Cisco Systems
   301 Midenhall Way
   Cary, NC  27513
   United States
   Email: acee@cisco.com

ISO Plain Language

On this page
PROBLEMOSPFv2's fixed-format LSAs do not readily carry new attributes for prefixes and links.
MECHANISMThe RFC defines Extended Prefix and Extended Link Opaque LSAs whose bodies contain Type-Length-Value structures and optional nested sub-TLVs.
WHY IT MATTERSThe new LSAs are optional and backward compatible. This RFC defines the framework and top-level TLVs; other specifications define the additional attributes.

§1Why OSPFv2 Needs Extended LSAs

OSPFv2 advertises routing information in fixed-format Link State Advertisements (LSAs), as defined in RFC 2328. These formats do not readily support all new information needed by applications such as source/destination routing, route tagging, and segment routing.

RFC 7684 defines two Opaque LSAs based on Type-Length-Value (TLV) tuples. They associate additional attributes with prefixes or links, whether or not those prefixes or links also appear in fixed-format LSAs. The extensions are optional and backward compatible.

OSPFv2's existing LSA formats are difficult to extend with new information. This RFC defines optional TLV-based LSAs for adding attributes to prefixes and links.

§2TLVs and Opaque Identifiers

Each TLV has a 16-bit Type, a 16-bit Length, and a value. Length counts only the value, in octets. The TLV and any nested sub-TLVs are padded with zeros to 4-octet alignment; padding is not included in Length. For example, a 3-octet value has Length 3 but occupies 8 octets including its header and padding.

The Opaque ID distinguishes multiple Opaque LSAs of the same kind from one router; it has no other meaning. If several LSAs from that router advertise the same prefix or link, receivers use the attributes from the LSA with the lowest Opaque ID.

A TLV carries a type, the length of its value, and the value. Zero padding aligns the entries, while the length field excludes that padding.

TLV HEADER WITH TYPE AND VALUE LENGTH
TLV header
FieldNameSizeValueDescription
TYPEType2 bytesIdentifies the TLV.
LENGTHLength2 bytesValue length in octets, excluding padding.

§2.1The Extended Prefix Opaque LSA

The Extended Prefix Opaque LSA uses Opaque Type 7. It carries additional attributes for prefixes from Router-LSAs, Network-LSAs, Summary-LSAs, NSSA-LSAs, and AS-external-LSAs. Its LS Type may be 10 for area-local flooding or 11 for AS-wide flooding. The advertising router selects the scope, which must meet the needs of every prefix in that LSA.

The Extended Prefix TLV has type 1 and contains a route type, prefix length, address family, flags, address prefix, and optional sub-TLVs. Route types 0, 1, 3, 5, and 7 mean unspecified, intra-area, inter-area, AS external, and NSSA external. Address-family value 0 currently means IPv4 unicast. The A-Flag identifies an attached inter-area prefix; the N-Flag marks a host prefix identifying the advertising router.

If the same prefix appears more than once in one LSA, receivers use the first instance. When it appears in separate LSAs from the same router, they use the one with the lowest Opaque ID.

The Extended Prefix LSA attaches route attributes to a prefix. Its TLV identifies the prefix, its route type, and optional flags or further attributes.

ROUTE TYPE VALUES IN THE EXTENDED PREFIX TLV
  • 0Unspecified — Applies regardless of route type.
  • 1Intra-Area — Route within an area.
  • 3Inter-Area — Route between areas.
  • 5AS External — External route.
  • 7NSSA External — External route in an NSSA.

§3The Extended Link Opaque LSA

The Extended Link Opaque LSA uses Opaque Type 8 and LS Type 10, so it is flooded within an area. It advertises extra attributes for links in Router-LSAs. Its Extended Link TLV has type 1 and identifies one link using its Link Type, Link ID, and Link Data, followed by sub-TLVs.

Only one Extended Link TLV SHALL appear in each Extended Link Opaque LSA. This allows a change to one link to be advertised separately. Sub-TLVs may appear in any order. The RFC defines the framework, but its sub-TLV registries begin with only a Reserved value; later specifications define actual link and prefix attributes.

An Extended Link LSA describes one link and its optional attributes. Keeping one link in each LSA lets a router update that link separately.

§2.1Duplicate and Malformed Information

If a prefix appears multiple times in one Extended Prefix LSA, receivers use only its first instance and SHOULD log an error. If duplicate prefix information appears in separate LSAs from the same router, receivers use the instance in the LSA with the lowest Opaque ID. When different routers advertise a prefix, the application using the information decides which to prefer.

A malformed LSA is one whose TLV or sub-TLV extends beyond its containing data, or leaves too little data for a TLV header. Malformed LSAs MUST NOT be stored in the link-state database, acknowledged, or reflooded. Their reception SHOULD be counted or logged.

When a prefix is repeated, receivers follow defined rules to choose which entry to use. An LSA with a truncated or overlong TLV is discarded rather than stored or forwarded.

§4Backward Compatibility and Security

Opaque LSAs are optional and backward compatible, so routers that do not understand these extensions can continue to operate. Future applications using the extensions MUST define how their own functionality remains backward compatible.

The new LSAs have the same security concerns as OSPFv2 and Opaque LSAs. Applications using them must describe their own security considerations. Implementations must detect malformed TLV combinations so they cannot crash the router or its routing process.

Routers can ignore these optional LSAs without changing their existing operation. Implementations must also handle malformed TLVs without crashing.

§6IANA Registries

IANA registers Opaque Type 7 for Extended Prefix LSAs and Opaque Type 8 for Extended Link LSAs. The RFC also creates registries for top-level TLVs, sub-TLVs, and Extended Prefix TLV flags.

New TLV values are allocated by IETF Review or IESG Approval. Types from 32768 through 33023 are for experimental use and MUST NOT be mentioned by RFCs. Types from 33024 through 65535 are not assigned until an IETF specification covers the range.

IANA keeps registries for the new LSA and TLV types. Some values are reserved for experiments, and another range cannot be assigned until an IETF specification defines how to use it.

§8References