Network Working Group | P. Psenak |
Internet-Draft | Cisco Systems |
Intended status: Standards Track | H. Gredler |
Expires: June 18, 2015 | Juniper Networks, Inc. |
R. Shakir | |
British Telcom | |
W. Henderickx | |
Alcatel-Lucent | |
J. Tantsura | |
Ericsson | |
A. Lindem | |
Cisco Systems | |
December 15, 2014 |
OSPFv2 Prefix/Link Attribute Advertisement
draft-ietf-ospf-prefix-link-attr-02.txt
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 OSPF opaque LSAs based on Type-Length-Value (TLV) tuples that can be used to associate additional attributes with prefixes or links. Dependent on the application, these prefixes and links may or not be advertised in the fixed-format LSAs. The OSPF opaque LSAs are optional and fully backward compatible.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on June 18, 2015.
Copyright (c) 2014 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.
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 OSPF opaque LSAs based on Type-Length-Value (TLV) tuples that can be used to associate additional attributes with prefixes or links. Dependent on the application, these prefixes and links may or not be advertised in the fixed-format LSAs. The OSPF opaque LSAs are optional and fully backward compatible. This is in contrast to the approach taken in OSPFv3 [I-D.ietf-ospf-ospfv3-lsa-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:
Additionally, the following TLVs are defined:
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].
We would like to thank Anton Smirnov for his contribution.
Thanks to Tony Przygienda for his review and comments.
The OSPFv2 Extended Prefix Opaque LSA will be 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), 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 | 9, 10, or 11 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Opaque type | Instance | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Advertising Router | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LS sequence number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LS checksum | length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +- TLVs -+ | ... |
OSPFv2 Extended Prefix LSA
The opaque type used by OSPFv2 Extended Prefix Opaque LSA is 7.
The format of the TLVs within the body of the OSPFv2 Extended Prefix LSA is the same as the format used by the Traffic Engineering Extensions to OSPF [TE]. The variable TLV section consists of one or more nested Type/Length/Value (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... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 OSPF Extended Prefix TLV is used in order to advertise additional attributes associated with the prefix. Multiple OSPF 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 OSPF 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
0 1 2 3 4 5 6 7 +--+--+--+--+--+--+--+--+ |A | | | | | | | | +--+--+--+--+--+--+--+--+ where:
If this TLV is advertised multiple times for the same prefix in the same OSPFv2 Extended Prefix Opaque LSA, only the first instance 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 OSPF router, the OSPF advertising router is re-originating Extended Prefix Opaque LSAs for multiple prefixes and is most likely repacking Extended-Prefix-TLVs in Extended Prefix Opaque LSAs. In this case, the Extended-Prefix-TLV in the Extended Prefix Opaque LSA with the smallest Instance is used by receiving OSPFv2 Routers. This situation MAY be logged as a warning.
It is RECOMMENDED that OSPF routers advertising Extended-Prefix-TLVs in different Extended Prefix Opaque LSAs re-originate these LSAs in ascending order of Instance to minimize the disruption.
If this TLV is advertised multiple times for the same prefix in different OSPFv2 Extended Prefix Opaque LSAs originated by the different OSPF 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 OSPF Extended Prefix sub-TLVs in Section 6.
The OSPFv2 Extended Link Opaque LSA will be 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 | 10 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Opaque type | Instance | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Advertising Router | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LS sequence number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LS checksum | length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | +- TLVs -+ | ... |
OSPFv2 Extended Link LSA
The Opaque type used by OSPFv2 Extended Link Opaque LSA is 8.
The format of the TLVs within the body of the OSPFv2 Extended Prefix LSA is the same as Section 2.
OSPFv2 Extended Link TLV is used in order 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 Extended Link TLV SHALL be advertised in each Extended Link Opaque LSA, allowing for fine granularity changes in the topology.
The 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
This document creates a registry for OSPF Extended Link sub-TLVs in Section 6.
Since opaque OSPFv2 LSAs are optional and backward compatible [OPAQUE], the extensions described herein is fully backward compatible. However, future OSPFv2 extensions utilizing these extensions must address backward compatibility of the corresponding functionality.
In general, new LSAs defined in this document are subject to the same security concerns as those described in [OSPFV2]. Additionally, implementations must assure that malformed TLV and Sub-TLV permutations do not result in errors that cause hard OSPF failures.
This specification updates the Opaque Link-State Advertisements (LSA) Option Types with the following values:
This specification also creates four new registries:
The OSPF Extend Prefix LSA TLV registry will define top-level TLVs for Extended Prefix LSAs and should be placed in the existing OSPF IANA registry. New values can be allocated via IETF Consensus or IESG Approval.
The following initial values are allocated:
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 that covers the range being assigned.
The OSPF Extended Link LSA sub-TLV registry will define sub-TLVs at any level of nesting for Extended Link LSAs and should be placed in the existing OSPF IANA registry. New values can be allocated via IETF Consensus or IESG Approval.
The following initial values are allocated:
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 that covers the range being assigned.
The OSPF Extend Link LSA TLV registry will define top-level TLVs for Extended Link LSAs and should be placed in the existing OSPF IANA registry. New values can be allocated via IETF Consensus or IESG Approval.
Following initial values are allocated:
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 am IETF specification that specifies IANA Considerations that covers the range being assigned.
The OSPF Extended Link sub-TLV registry will define will define sub-TLVs at any level of nesting for Extended Link LSAs and should be placed in the existing OSPF IANA registry. New values can be allocated via IETF Consensus or IESG Approval.
The following initial values are allocated:
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 that covers the range being assigned.
[OPAQUE] | Berger, L., Bryskin, I., Zinin, A. and R. Coltun, "The OSPF Opaque LSA Option", RFC 5250, July 2008. |
[OSPFV2] | Moy, J., "OSPF Version 2", RFC 2328, April 1998. |
[RFC-KEYWORDS] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, March 1997. |
[TE] | Katz, D., Yeung, D. and K. Kompella, "Traffic Engineering Extensions to OSPF", RFC 3630, September 2003. |
[I-D.ietf-ospf-ospfv3-lsa-extend] | Lindem, A., Mirtorabi, S., Roy, A. and F. Baker, "OSPFv3 LSA Extendibility", Internet-Draft draft-ietf-ospf-ospfv3-lsa-extend-03, May 2014. |
[RFC7120] | Cotton, M., "Early IANA Allocation of Standards Track Code Points", BCP 100, RFC 7120, January 2014. |