<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-heitz-idr-large-community-04" ipr="trust200902">
  <front>
    <title abbrev="Large BGP Community">Large BGP Community</title>

    <author fullname="Jakob Heitz" initials="J." surname="Heitz">
        <organization>Cisco</organization>
        <address>
            <postal>
                <street>170 West Tasman Drive</street>
                <city>San Jose</city>
                <region>CA</region>
                <code>95054</code>
                <country>USA</country>
            </postal>
            <email>jheitz@cisco.com</email>
        </address>
    </author>

    <author fullname="Keyur Patel" initials="K." surname="Patel">
        <organization abbrev="Arrcus">Arrcus, Inc</organization>
        <address>
            <email>keyur@arrcus.com</email>
        </address>
    </author>

    <author fullname="Job Snijders" initials="J." surname="Snijders">
        <organization abbrev="NTT">NTT Communications</organization>
        <address>
            <postal>
                <street>Theodorus Majofskistraat 100</street>
                <code>1065 SZ</code>
                <city>Amsterdam</city>
                <country>NL</country>
            </postal>
            <email>job@ntt.net</email>
        </address>
    </author>

    <author fullname="Ignas Bagdonas" initials="I." surname="Bagdonas">
        <organization>Equinix</organization>
        <address>
            <postal>
                <street></street>
                <city>London</city>
                <country>UK</country>
            </postal>
            <email>ibagdona.ietf@gmail.com</email>
        </address>
    </author>

    <author fullname="Adam Simpson" initials="A." surname="Simpson">
        <organization>Nokia</organization>
        <address>
            <postal>
                <street>600 March Road</street>
                <city>Ottawa</city>
                <code>Ontario K2K 2E6</code>
                <country>Canada</country>
            </postal>
            <email>adam.1.simpson@nokia.com</email>
        </address>
    </author>

    <date/>

    <area>Routing</area>
    <workgroup>IDR</workgroup>
    <keyword>BGP</keyword>
    <keyword>communities</keyword>

    <abstract>
        <t>
            A new type of BGP community attribute that contains communities
            that each hold a 4-octet AS number and a 8-octet opaque field is
            defined.
        </t>
    </abstract>

    <note title="Requirements Language">
        <t>
            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
            <xref target="RFC2119"/>.
        </t>
    </note>

  </front>

  <middle>
    <section title="Introduction">
        <t>
            A Large Community attribute is defined that encodes 12 bytes
            communities, suitable for 4-Octet Autonomous System Numbers that
            require 8 octets of locally significant opaque data.
        </t>
        <t>
            The Large Community is specifically designed to accomodate routing
            policy related to 4-byte ASNs, as it allows operators to specify
            two 4-byte ASNs and still have room for 4 bytes for an action. For
            example, to make a request to AS65551 to add 3 prepends when
            sending a route to AS65536, one might add the Large Community
            65551:303:65536. AS65551 would publish a list of large communities
            and their associated actions. The Large Community is opaque.
        </t>
        <t>
            To ensure rapid and smooth adoption of the new community attribute,
            it must be as similar to the  <xref target="RFC1997"/> community as
            possible, only bigger.
        </t>
    </section>

    <section title="Large BGP Community Attribute">
        <t>
            The Large Community Attribute is a transitive optional BGP
            attribute, with the Type Code (suggested 41) to be assigned by
            IANA. The attribute consists of a set of Large Communities. All
            routes with the Large Community attribute belong to the
            communities listed in the attribute.
        </t>
        <t>
            Each Large Community is encoded as a 12-octet quantity, as follows:
<figure align="center"><artwork><![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     Autonomous System number                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Local Data Part 1                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         Local Data Part 2                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure></t>

<t>
    <list style="hanging">
        <t hangText="Autonomous System Number:">This field indicates the Autonomous System in which the Large Community has a meaning.</t>
        <t hangText="Local Data part 1:">data set by network operator</t>
        <t hangText="Local Data part 2:">data set by network operator</t>
    </list>
</t>

    </section>
    <section title="Textual Representation">
        <t>
            The textual representation of the Large Community is A:B:C, where A
            is the Autonomous System number, B is the Local Data part 1 and C is
            the Local Data part 2. A ranges from 0 to 4294967295. B ranges from 0
            to 4294967295. C ranges from 0 to 4294967295. A, B and C are plain
            decimal non-negative integers without leading zeroes. Each number must
            appear, even if it is 0. For example, "0:1:2" cannot be written as
            ":1:2". The string is expected to match the following regular
            expression: ^[0-9]+:[0-9]+:[0-9]+$
        </t>
    </section>

    <section title="Error Handling">
        <t>
            The error handling of Large Community is as follows:
        </t>
        <t>
            <list style="symbols">
                <t>
                The Large Community attribute SHALL be considered malformed if
                its length is not a non-zero multiple of 12 bytes.
                </t>
                <t>
                An UPDATE message with a malformed Large Community attribute
                SHALL be handled using the approach of "treat-as-withdraw" as
                described in <xref target="RFC7606">section 2</xref>.
              </t>
            </list>
        </t>
    </section>

    <section title="Security Considerations">
       <t>TBD</t>
   </section>
   
   <section title="Implementation status - RFC EDITOR: REMOVE BEFORE PUBLICATION">
       <t>
           This section records the status of known implementations of the
           protocol defined by this specification at the time of posting of
           this Internet-Draft, and is based on a proposal described in
           <xref target="RFC7942" />. The description of implementations in this
           section is intended to assist the IETF in its decision processes in
           progressing drafts to RFCs.  Please note that the listing of any
           individual implementation here does not imply endorsement by the
           IETF.  Furthermore, no effort has been spent to verify the
           information presented here that was supplied by IETF contributors.
           This is not intended as, and must not be construed to be, a catalog
           of available implementations or their features.  Readers are advised
           to note that other implementations may exist.
       </t>
       <t>
           As of today these vendors have produced an implementation of Large
           BGP Community:
           <list style="symbols">
               <t>Cisco IOS XR</t>
               <t>ExaBGP</t>
            </list>
       </t>
       <t>
           The latest implementation news is tracked at
           <eref target="https://largebgpcommunities.net">http://largebgpcommunities.net/</eref>.
       </t>
   </section>

    <section title="IANA Considerations">
        <t>
            IANA is requested to assign a BGP path attribute value for the
            Large Community attribute (suggested 41).
        </t>
    </section>

    <section title="Acknowledgements">
        <t>
            Thanks to Ruediger Volk, Russ White, Acee Lindem, Shyam Sethuram,
            Jared Mauch, Joel M. Halpern and Nick Hilliard for insightful
            review and comments.
        </t>
    </section>

  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.1997"?>
      <?rfc include="reference.RFC.2119"?>
      <?rfc include="reference.RFC.7606"?>
    </references>
    <references title="Informative References">
      <?rfc include="reference.RFC.7942"?>
    </references>


  </back>
</rfc>
