RFC 7153

IANA Registries for BGP Extended Communities

πŸ“… published March 2014, from ietf

RFC 7153: IANA Registries for BGP Extended Communities πŸŽ€

Okay bestie, this one is from March 2014 and it's by E. Rosen of Cisco Systems, Inc. and Y. Rekhter of Juniper Networks, Inc. πŸ’– It's a Standards Track document (ISSN 2070-1721), and it updates RFC 4360 and RFC 5701, so those two are getting a glow-up πŸ’…βœ¨

Abstract ✨

Okay so this doc reorganizes the IANA registries for the type values and sub-type values of the BGP Extended Communities attribute, and for the BGP IPv6-Address-Specific Extended Communities attribute πŸ¦‹ The whole point is to untangle the registries from each other so IANA can easily see which codepoints are free in which registry 🧩 It also spells out what info has to be handed to IANA when someone asks for an allocation from one or more of these registries. Lowkey the good news is that these changes are compatible with the existing allocations, so implementations aren't affected. The changes will impact the "IANA Considerations" sections of future protocol specs though, so future authors, take note πŸ“ And yes, it updates RFC 4360 and RFC 5701 πŸ’œ

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). If you want more on Internet Standards, check out Section 2 of RFC 5741 πŸ“š

Info about the current status of this document, any errata, and how to give feedback is at http://www.rfc-editor.org/info/rfc7153 πŸ”—

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) as they stood on the date of publication 🌈 Please read these carefully, because they explain your rights and restrictions for this document. Code Components pulled out of this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License 🫢

Table of Contents πŸ“–

1. Introduction ....................................................3
2. Types, Sub-Types, and Registries ................................4
3. Applicability to IPv6-Address-Specific EC Attribute .............4
4. How to Request EC Type and/or Sub-Type Codepoints ...............5
5. IANA Considerations .............................................6
   5.1. Registries for the "Type" Field ............................7
        5.1.1. Transitive Types ....................................7
        5.1.2. Non-Transitive Types ................................8
   5.2. Registries for the "Sub-Type" Field ........................9
        5.2.1. EVPN Extended Community Sub-Types ...................9
        5.2.2. Transitive Two-Octet AS-Specific Extended Community
               Sub-Types ..........................................10
        5.2.3. Non-Transitive Two-Octet AS-Specific Extended
               Community Sub-Types ................................10
        5.2.4. Transitive Four-Octet AS-Specific Extended
               Community Sub-Types ................................11
        5.2.5. Non-Transitive Four-Octet AS-Specific Extended
               Community Sub-Types ................................11
        5.2.6. Transitive IPv4-Address-Specific Extended Community
               Sub-Types ..........................................12
        5.2.7. Non-Transitive IPv4-Address-Specific Extended
               Community Sub-Types ................................12
        5.2.8. Transitive Opaque Extended Community Sub-Types .....13
        5.2.9. Non-Transitive Opaque Extended Community
               Sub-Types ..........................................13
        5.2.10. Generic Transitive Experimental Use Extended
                Community Sub-Types ...............................14
        5.2.11. Registries for the "Value" Field ..................14
               5.2.11.1. Traffic Action Fields ....................14
   5.3. Registries for IPv6-Address-Specific ECs ..................15
        5.3.1. Transitive Types ...................................15
        5.3.2. Non-Transitive Types ...............................15
6. Security Considerations ........................................15
7. Acknowledgments ................................................16
8. Normative References ...........................................16

1. Introduction πŸ’«

Okay so RFC 4360 [RFC4360] is the one that defines the BGP "Extended Communities" (EC) attribute 🧁 This attribute is a sequence of eight-octet "extended communities". The high-order octet is defined to be the "Type" field. Each Type has a range of values for "Transitive Extended Community Types" and another range for "Non-transitive Extended Community Types". Some of these ranges get split further into a sub-range that IANA assigns under the "Standards Action" policy, a sub-range that IANA assigns under the "First Come First Served" policy, and a sub-range for "experimental use". (For an explanation of these policies, see [RFC5226], [RFC7120], and [RFC3692] πŸ“š)

For some Extended Community Types, the second octet of the Extended Community is a "Sub-Type" field, and the remaining six octets are the "Value" field. These are called "Extended Types". For other types there's no "Sub-Type" field, and the "Value" field holds seven octets. These are called "Regular Types" 🌷

RFC 4360 isn't very specific about how the IANA registries for Extended Community Types and/or Sub-Types should be organized, and honestly that has caused some confusion πŸ™ˆ So the goal of this document is to reorganize the registries to make the IANA codepoint allocation task more straightforward πŸ’…

2. Types, Sub-Types, and Registries πŸ“

The high-order octet of an Extended Community is known as the "Type" field.

There will be one IANA registry for "Transitive Extended Community Types" (see Section 5.1.1) and one for "Non-transitive Extended Community Types" (Section 5.1.2). Each registry specifies three ranges, and each range is tied to a particular IANA allocation policy 🎯

There will be a set of IANA registries for Extended Community Sub-Types (see Section 5.2). Each one has a range of 0x00-0xFF. Values in the range 0x00-0xBF are assignable by IANA under the "First Come First Served" allocation policy of [RFC5226]. Values in the range 0xC0-0xFF are assignable by IANA under the "IETF Review" allocation policy of [RFC5226] ✨

If a particular Type has Sub-Types, that Type's entry in its Type registry identifies its Sub-Type registry. Some Types don't have Sub-Types at all, so note that 🧚 When someone requests a new Type registry, the request must specify whether or not there is to be a Sub-Type registry associated with that Type.

Whether a given Type has Sub-Types is determined when the Type is initially defined, and that can't be changed later πŸ”’

3. Applicability to IPv6-Address-Specific EC Attribute πŸ¦‹

RFC 5701 [RFC5701] defines the IPv6-Address-Specific Extended Community as a 20-octet quantity whose high-order two octets may be considered to be the "Type" field. The high-order octet is either 0x00, meaning a transitive Extended Community, or 0x40, meaning a Non-transitive Extended Community. The second octet is called a "Sub-Type", and it's suggested that the Sub-Types match the Sub-Types for the IPv4-Address-Specific Extended Community. But here's the tea β˜• The existing IANA codepoint allocations for this octet don't always match the corresponding allocations for the IPv4-Address-Specific Extended Community Sub-Types πŸ‘€

This document modifies RFC 5701 by removing any requirement that the values of the second octet of the IPv6-Address-Specific Extended Community Type codepoints match the codepoints in either of the IPv4-Address-Specific Sub-Types registries. No more matching homework πŸ™Œ

This document asks IANA to create two IPv6-Address-Specific Extended Community registries, one for transitive communities and one for non-transitive communities. See Section 5.3 πŸ‘‘

4. How to Request EC Type and/or Sub-Type Codepoints ✨

okay so, when you need a codepoint for a brand new Extended Community, the first thing you do is check whether an existing Type already works 🧐 if one does, ask IANA for a codepoint from that Type's Sub-Type registry, as long as there is one πŸ’–

if you actually need a new Extended Community Type, you ask IANA to allocate one from the "BGP Transitive Extended Community Types" registry, the "BGP Non-Transitive Extended Community Types" registry, or both πŸ¦‹ it's on you to say which of those you want. and if you want both, the requester might like the two allocations to share the same low-order six bits. if that's the case, you have to explicitly ask IANA for it 🫢

any request for a codepoint from a specific registry also has to follow that registry's defined registration procedures. no skipping, bestie πŸ’…

if the new Type is going to have Sub-Types, you need to say whether an existing Sub-Type registry can be reused for it or whether it needs a brand new one 🌈 (right now, every Type with Sub-Types has its own unique Sub-Type registry. in the future, a new Type registry might get linked to a Sub-Type registry that already exists, so keep an eye out πŸ‘€) either way, if you need a new Sub-Type value from a certain registry, your request should name that registry explicitly πŸŽ€

when you ask for a brand new Sub-Type registry, the values always run 0x00-0xFF. the recommended move is to use the allocation policy from Section 2, which means 0x00-0xBF goes to "First Come First Served" and 0xC0-0xFF goes to "IETF Review" πŸ“

a lot of the time, a new Extended Community is built to work with several Types. like, you might want it to be transitive or non-transitive, or to use the two-octet AS Number Type or the four-octet AS Number Type, and so on πŸ”₯ the requester has to explicitly ask IANA for codepoints in every Type and/or Sub-Type registry it needs. main character energy, but you gotta ask for all of them πŸ‘‘

sometimes a new Extended Community needs codepoints in a bunch of Sub-Type registries. in that case, it's really common to ask IANA for the exact same codepoint value in each registry. if that's what you want, the requester has to explicitly ask for the same value everywhere 🧚

when a new Extended Community Sub-Type codepoint gets allocated, you might also want a matching value in one or both of the IPv6-Address-Specific Extended Community registries πŸ’œ the requester has to explicitly request that allocation. and if you want the same numerical value in an IPv6-Address-Specific Extended Community registry as the one you got somewhere else, you have to explicitly ask IANA for that too πŸ™ˆ


5. IANA Considerations 🌸

okay, IANA swapped out the old BGP Extended Communities registries for the new ones described in this section 🧁

the registries below leave out the "references" and "date" fields for each individual codepoint. why? because fitting that stuff inside the 72-character line limit of RFCs is a nightmare 😭 those references and dates were copied over from the existing registries when the new ones were made, and the authors worked with IANA to make sure everything carried over correctly 🫢 this document doesn't change how any codepoint is used or what it means, so the references for each codepoint stay the same ✨

the references for each registry defined in this section are different though. they now point to this document πŸ’–

5.1. Registries for the "Type" Field

5.1.1. Transitive Types

the following note got added to the "BGP Transitive Extended Community Types" registry:

   This registry contains values of the high-order octet (the "Type"
   field) of a Transitive Extended Community.
   Registry Name: BGP Transitive Extended Community Types

      RANGE            REGISTRATION PROCEDURES

      0x00-0x3F        First Come First Served
      0x80-0x8F        Experimental Use (see RFC 3692)
      0x90-0xBF        Standards Action

      TYPE VALUE       NAME

      0x00             Transitive Two-Octet AS-Specific Extended
                       Community (Sub-Types are defined in the
                       "Transitive Two-Octet AS-Specific Extended
                       Community Sub-Types" registry)

      0x01             Transitive IPv4-Address-Specific Extended
                       Community (Sub-Types are defined in the
                       "Transitive IPv4-Address-Specific Extended
                       Community Sub-Types" registry)

      0x02             Transitive Four-Octet AS-Specific Extended
                       Community (Sub-Types are defined in the
                       "Transitive Four-Octet AS-Specific Extended
                       Community Sub-Types" registry)

      0x03             Transitive Opaque Extended Community
                       (Sub-Types are defined in the "Transitive
                       Opaque Extended Community Sub-Types"
                       registry)

      0x04             QoS Marking

      0x05             CoS Capability

      0x06             EVPN (Sub-Types are defined in the "EVPN
                       Extended Community Sub-Types" registry)

      0x08             Flow spec redirect/mirror to IP next-hop
      0x80             Generic Transitive Experimental Use Extended
                       Community (Sub-Types are defined in the
                       "Generic Transitive Experimental Use Extended
                       Community Sub-Types" registry)

5.1.2. Non-Transitive Types

the following note got added to the "BGP Non-Transitive Extended Community Types" registry:

   This registry contains values of the high-order octet (the "Type"
   field) of a Non-transitive Extended Community.
   Registry Name: BGP Non-Transitive Extended Community Types

      RANGE            REGISTRATION PROCEDURES

      0x40-0x7F        First Come First Served
      0xC0-0xCF        Experimental Use (see RFC 3692)
      0xD0-0xFF        Standards Action

      TYPE VALUE       NAME

      0x40             Non-Transitive Two-Octet AS-Specific Extended
                       Community (Sub-Types are defined in the
                       "Non-Transitive Two-Octet AS-Specific Extended
                       Community Sub-Types" registry)

      0x41             Non-Transitive IPv4-Address-Specific Extended
                       Community (Sub-Types are defined in the
                       "Non-Transitive IPv4-Address-Specific Extended
                       Community Sub-Types" registry)

      0x42             Non-Transitive Four-Octet AS-Specific Extended
                       Community (Sub-Types are defined in the
                       "Non-Transitive Four-Octet AS-Specific Extended
                       Community Sub-Types" registry)

      0x43             Non-Transitive Opaque Extended Community
                       (Sub-Types are defined in the "Non-Transitive
                       Opaque Extended Community Sub-Types" registry)

      0x44             QoS Marking

5.2. Registries for the "Sub-Type" Field

5.2.1. EVPN Extended Community Sub-Types

the following note got added to the "EVPN Extended Community Sub-Types" registry:

   This registry contains values of the second octet (the "Sub-Type"
   field) of an extended community when the value of the first octet
   (the "Type" field) is 0x06.
   Registry Name: EVPN Extended Community Sub-Types

      RANGE              REGISTRATION PROCEDURE

      0x00-0xBF          First Come First Served
      0xC0-0xFF          IETF Review

      SUB-TYPE VALUE     NAME

      0x00               MAC Mobility
      0x01               ESI MPLS Label
      0x02               ES Import

5.2.2. Transitive Two-Octet AS-Specific Extended Community Sub-Types

the following note got added to the "Transitive Two-Octet AS-Specific Extended Community Sub-Types" registry:

   This registry contains values of the second octet (the "Sub-Type"
   field) of an extended community when the value of the first octet
   (the "Type" field) is 0x00.
   Registry Name: Transitive Two-Octet AS-Specific Extended
                  Community Sub-Types

      RANGE              REGISTRATION PROCEDURE

      0x00-0xBF          First Come First Served
      0xC0-0xFF          IETF Review

      SUB-TYPE VALUE     NAME

      0x02               Route Target
      0x03               Route Origin
      0x05               OSPF Domain Identifier
      0x08               BGP Data Collection
      0x09               Source AS
      0x0A               L2VPN Identifier
      0x10               Cisco VPN-Distinguisher

5.2.3. Non-Transitive Two-Octet AS-Specific Extended Community Sub-Types

the following note got added to the "Non-Transitive Two-Octet AS-Specific Extended Community Sub-Types" registry:

   This registry contains values of the second octet (the "Sub-Type"
   field) of an extended community when the value of the first octet
   (the "Type" field) is 0x40.
   Registry Name: Non-Transitive Two-Octet AS-Specific Extended
                  Community Sub-Types

      RANGE              REGISTRATION PROCEDURE

      0x00-0xBF          First Come First Served
      0xC0-0xFF          IETF Review

      SUB-TYPE VALUE     NAME

      0x04               Link Bandwidth Extended Community

5.2.4. Transitive Four-Octet AS-Specific Extended Community Sub-Types

the following note got added to the "Transitive Four-Octet AS-Specific Extended Community Sub-Types" registry:

   This registry contains values of the second octet (the "Sub-Type"
   field) of an extended community when the value of the first octet
   (the "Type" field) is 0x02.
   Registry Name: Transitive Four-Octet AS-Specific Extended
                  Community Sub-Types

      RANGE              REGISTRATION PROCEDURE

      0x00-0xBF          First Come First Served
      0xC0-0xFF          IETF Review

      SUB-TYPE VALUE     NAME

      0x02               Route Target
      0x03               Route Origin
      0x04               Generic
      0x05               OSPF Domain Identifier
      0x08               BGP Data Collection
      0x09               Source AS
      0x10               Cisco VPN Identifier

5.2.5. Non-Transitive Four-Octet AS-Specific Extended Community Sub-Types

the following note got added to the "Non-Transitive Four-Octet AS-Specific Extended Community Sub-Types" registry:

   This registry contains values of the second octet (the "Sub-Type"
   field) of an extended community when the value of the first octet
   (the "Type" field) is 0x42.
   Registry Name: Non-Transitive Four-Octet AS-Specific
                  Extended Community Sub-Types

      RANGE              REGISTRATION PROCEDURE

      0x00-0xBF          First Come First Served
      0xC0-0xFF          IETF Review

      SUB-TYPE VALUE     NAME

      0x04               Generic

5.2.6. Transitive IPv4-Address-Specific Extended Community Sub-Types ✨

okay so the "Transitive IPv4-Address-Specific Extended Community Sub-Types" registry got a new note πŸ’… It says this registry holds the values of the second octet (the "Sub-Type" field) when the first octet (the "Type" field) is 0x01.

Registry Name: Transitive IPv4-Address-Specific Extended Community Sub-Types

RANGE              REGISTRATION PROCEDURE

0x00-0xBF          First Come First Served
0xC0-0xFF          IETF Review

SUB-TYPE VALUE     NAME

0x02               Route Target
0x03               Route Origin
0x05               OSPF Domain Identifier
0x07               OSPF Route ID
0x0A               L2VPN Identifier
0x0B               VRF Route Import
0x10               Cisco VPN-Distinguisher

5.2.7. Non-Transitive IPv4-Address-Specific Extended Community Sub-Types 🌸

The "Non-Transitive IPv4-Address-Specific Extended Community Sub-Types" registry also got a note. This one covers the second octet (the "Sub-Type" field) when the first octet (the "Type" field) is 0x41.

Registry Name: Non-Transitive IPv4-Address-Specific Extended Community Sub-Types

RANGE            REGISTRATION PROCEDURE

0x00-0xBF        First Come First Served
0xC0-0xFF        IETF Review

None Assigned

5.2.8. Transitive Opaque Extended Community Sub-Types πŸ¦‹

The "Transitive Opaque Extended Community Sub-Types" registry got a note too. It covers the second octet (the "Sub-Type" field) when the first octet (the "Type" field) is 0x03.

Registry Name: Transitive Opaque Extended Community Sub-Types

RANGE             REGISTRATION PROCEDURE

0x00-0xBF         First Come First Served
0xC0-0xFF         IETF Review

SUB-TYPE VALUE    NAME

0x06              OSPF Route Type
0x0B              Color Extended Community
0x0C              Encapsulation Extended Community
0x0D              Default Gateway

5.2.9. Non-Transitive Opaque Extended Community Sub-Types 🧚

Same deal for the "Non-Transitive Opaque Extended Community Sub-Types" registry. The note is about the second octet (the "Sub-Type" field) when the first octet (the "Type" field) is 0x43.

Registry Name: Non-Transitive Opaque Extended Community Sub-Types

RANGE              REGISTRATION PROCEDURE

0x00-0xBF          First Come First Served
0xC0-0xFF          IETF Review

SUB-TYPE VALUE     NAME

0x00               BGP Origin Validation State

5.2.10. Generic Transitive Experimental Use Extended Community Sub-Types πŸ’œ

The "Generic Transitive Experimental Use Extended Community Sub-Types" registry has a note as well. It covers the second octet (the "Sub-Type" field) when the first octet (the "Type" field) is 0x80.

Registry Name: Generic Transitive Experimental Use Extended Community Sub-Types

RANGE              REGISTRATION PROCEDURE

0x00-0xBF          First Come First Served
0xC0-0xFF          IETF Review

SUB-TYPE VALUE     NAME

0x06               Flow spec traffic-rate
0x07               Flow spec traffic-action (Use of the
                   "Value" field is defined in the
                   "Traffic Action Fields" registry)
0x08               Flow spec redirect
0x09               Flow spec traffic-remarking
0x0A               Layer2 Info Extended Community
Note: RFC 5575 contains narrative text that declares the "Flow spec traffic-rate" to be non-transitive, but then assigns it a codepoint that indicates that it is transitive. Addressing this error in RFC 5575 is not within the scope of this document. πŸ™ˆ

5.2.11. Registries for the "Value" Field πŸ“

At the time this document was written, there is only one registry with codepoints for the "Value" field of an Extended Community. Just one! 😭

5.2.11.1. Traffic Action Fields

This registry has not been modified. 🫢

5.3. Registries for IPv6-Address-Specific ECs 🌈

5.3.1. Transitive Types ⭐

The "Transitive IPv6-Address-Specific Extended Community Types" registry got a note. It says this registry holds values of the two high-order octets of an IPv6-Address-Specific Extended Community.

Registry Name: Transitive IPv6-Address-Specific Extended Community Types

RANGE              REGISTRATION PROCEDURE

0x0000-0x00FF      First Come First Served

TYPE VALUE         NAME

0x0002             Route Target
0x0003             Route Origin
0x0004             OSPFv3 Route Attributes (deprecated)
0x000B             VRF Route Import
0x0010             Cisco VPN-Distinguisher
0x0011             UUID-based Route Target

5.3.2. Non-Transitive Types πŸŽ€

The "Non-Transitive IPv6-Address-Specific Extended Community Types" registry got a note as well. It covers the two high-order octets of an IPv6-Address-Specific Extended Community, same as the transitive one.

Registry Name: Non-Transitive IPv6-Address-Specific Extended Community Types

RANGE              REGISTRATION PROCEDURE

0x4000-0x40FF      First Come First Served

None assigned

6. Security Considerations πŸ”₯

No security considerations are raised by this document. πŸ’–

7. Acknowledgments πŸ‘‘

The authors wish to thank Jon Mitchell, Hyojeong Kim, and Pearl Liang for their review and comments. 🫢

The authors wish to thank Amanda Baber of IANA for educating us on some of the problems faced by IANA staff when responding to requests for BGP Extended Community Type and Sub-Type codepoint allocations. Respect to Amanda! πŸ™Œ

8. Normative References πŸ“š

  • [RFC3692] Narten, T., "Assigning Experimental and Testing Numbers Considered Useful", BCP 82, RFC 3692, January 2004.
  • [RFC4360] Sangli, S., Tappan, D., and Y. Rekhter, "BGP Extended Communities Attribute", RFC 4360, February 2006.
  • [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 5226, May 2008.
  • [RFC5701] Rekhter, Y., "IPv6 Address Specific BGP Extended Community Attribute", RFC 5701, November 2009.
  • [RFC7120] Cotton, M., "Early IANA Allocation of Standards Track Code Points", BCP 100, RFC 7120, January 2014.

Authors' Addresses πŸ¦‹

Yakov Rekhter
Juniper Networks
1194 North Mathilda Ave.
Sunnyvale, CA  94089

EMail: yakov@juniper.net


Eric C. Rosen
Cisco Systems, Inc.
1414 Massachusetts Avenue
Boxborough, MA  01719

EMail: erosen@cisco.com
πŸ“¦ where this page comes from