<?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-wu-idr-flowspec-redirect-group-00"
     ipr="trust200902">
  <front>
    <title abbrev="Flowspec Redirect Load Balancing">BGP Flowspec Redirect
    Load Balancing Group Community</title>

    <author fullname="Zhiwen Wu" initials="Z." surname="Wu">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>No. 156 Beiqing Road</street>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

          <country>P.R. China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>wuzhiwen1@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Haibo Wang" initials="H." surname="Wang">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>No. 156 Beiqing Road</street>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

          <country>P.R. China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>rainsword.wang@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Lili Wang" initials="L." surname="Wang">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>No. 156 Beiqing Road</street>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

          <country>P.R. China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>lily.wong@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Zhen Tan" initials="Z." surname="Tan">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>No. 156 Beiqing Road</street>

          <city>Beijing</city>

          <region/>

          <code>100095</code>

          <country>P.R. China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>tanzhen6@huawei.com</email>

        <uri/>
      </address>
    </author>

    <date day="07" month="March" year="2022"/>

    <workgroup>IDR Working Group</workgroup>

    <abstract>
      <t>This document defines an extension to "BGP Community Container
      Attribute" [I-D.ietf-idr-wide-bgp-communities] , which allows flowspec
      redirection to multiple paths. This extended community serves to
      redirect traffic to a load balancing group and supports both equal-cost
      multi-path(ECMP) and unequal-cost multi-path(UCMP) scenarios.</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">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>"Redirect to IP Extended Community", defined in <xref
      target="I-D.ietf-idr-flowspec-redirect-ip"/>, allows traffic to be
      redirected to a specific IPv4 or IPv6 address, and <xref
      target="I-D.jiang-idr-ts-flowspec-srv6-policy"/> defines the redirection
      action to a SRv6 tunnel by additionally carrying the <xref
      target="RFC8955">"Color Extended Community"</xref>. </t>

      <t>However, scenarios involving redirection load balancing are not
      described in both documents. Although in some implementations,
      Equal-cost multi-path(ECMP) of "Redirect to IP" action can be achieved
      by encoding multiple redirect Extended Communities, the current set of
      mechanisms can hardly support neither ECMP of SRv6 tunnels nor
      unequal-cost multi-path(UCMP) of either types.</t>

      <t>This document defines an extension to <xref
      target="I-D.ietf-idr-wide-bgp-communities">"BGP Community Container
      Attribute"</xref>, the "Redirect Load Balancing Group" community. It is
      a new type of wide community container attribute with encoding format of
      multiple redirection path TLVs. Each of these TLVs represents a
      different redirection action. It allows traffic redirection to a load
      balancing group and supports both ECMP and UCMP scenarios.</t>

      <section title="Terminology">
        <t>This document introduces the following terms:</t>

        <t><list style="hanging">
            <t hangText="ECMP:">Equal-Cost Multi-Path</t>

            <t hangText="UCMP:">Unequal-Cost Multi-Path</t>
          </list></t>
      </section>
    </section>

    <section title="Redirect Load Balancing Group Community">
      <t>This document defines a new type of "BGP Community Container
      Attribute", the "Redirect Load Balancing Group" community type. The
      format complies with <xref
      target="I-D.ietf-idr-wide-bgp-communities">"BGP Community Container
      Attribute"</xref> and is shown below:</t>

      <t><figure title="Redirect Load Balancing Group Community Format">
          <artwork align="left"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Type              |    Flags  |C|T|   Reserved    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Community Value: Redirect Load Balancing Group        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Source AS Number                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Context AS Number                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Param TLV   |           Length              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                        sub-TLVs                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure></t>

      <t>The Type, Flags, Reserved and Length fields comply with the "BGP
      Community Container Attribute Common Header" definition.</t>

      <t>The container type MUST be 1, which represents BGP Wide
      Community.</t>

      <t>The Length field represents the total length of the container's
      contents in octets.</t>

      <section title="Community Value">
        <t>The Community Value, Source AS Number and Context AS Number fields
        comply with the corresponding definition in "BGP Community Container
        Attribute".</t>

        <t>Community Value: 4 octets value that represents the "Redirect Load
        Balancing Group" community type. The value is TBD and requires IANA
        registration; See Section 5.1.</t>
      </section>

      <section title="Param TLV">
        <t>The BGP Wide Community Parameter TLV (Sub-Type 3) contains a list
        of atoms, comply with "BGP Wide Community Parameter(s) TLV" section of
        "BGP Community Container Attribute".</t>

        <t>The Parameter TLV MUST present and SHOULD appear only once in a
        "Redirect Load Balancing Group" community container, no or multiple
        present SHOULD be considered malformed.</t>

        <t>Sub-Type: Type 3 (BGP Wide Community Parameter TLV)</t>

        <t>Length: Length of all the sub-TLVs in octets.</t>
      </section>

      <section title="Sub-TLVs(Atoms)">
        <t>The list of atoms that Param Tlv contains. Each atom represents a
        different redirection path.</t>

        <t>The general format of the sub-TLVs comply with atoms' format
        defined in "BGP Community Container Attribute", as below:</t>

        <t><figure title="Param Sub-TlV Format">
            <artwork align="left"><![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
+-+-+-+-+-+-+-+-+
|     Type      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            Value                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure></t>

        <t>The Type field is an octet from 1~254 (0 and 255 are reserved).
        Supported type of the sub-TLVs includes:</t>

        <t><list style="hanging">
            <t hangText="Type 1:">IPv4 Prefix Only</t>

            <t hangText="Type 2:">IPv4 Prefix with Weight</t>

            <t hangText="Type 3:">IPv4 Prefix with Color</t>

            <t hangText="Type 4:">IPv4 Prefix with Color and Weight</t>

            <t hangText="Type 5:">IPv6 Prefix Only</t>

            <t hangText="Type 6:">IPv6 Prefix with Weight</t>

            <t hangText="Type 7:">IPv6 Prefix with Color</t>

            <t hangText="Type 8:">IPv6 Prefix with Color and Weight</t>
          </list></t>

        <t>These sub-TLV types SHOULD be used exclusively within "Redirect
        Load Balancing Group" community containers.</t>

        <t>The Length represents the length of the "Value" field in octets,
        and it is fixed for each specific sub-TLV.</t>

        <t>If the length and type of a sub-TLV do not match, the "Redirect
        Load Balancing Group" community container SHOULD be considered
        malformed.</t>

        <t>If a sub-TLV is a total dupilication of a previous one, the latter
        sub-TLV MUST be ignored.</t>

        <t>In principle, sub-TLVs of different types may be combined in any
        mode. The supported combinations depend on the specific
        implementation.</t>

        <section title="Atom Type  1: IPv4 Prefix Only">
          <t>Indicating the redirection path is unweighted and to a IPv4
          address. The format is shown below:</t>

          <t><figure title="Atom Type  1: IPv4 Prefix Only">
              <artwork align="left"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type: 1    |   Length: 6                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Flag(2)            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            IPv4(4)                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure></t>

          <t>Length: MUST be 6.</t>

          <t>Flags: 2 octets, reserved for future use, MUST be set to 0 upon
          the sender and MUST be ignored upon the reciever.</t>

          <t>IPv4: 4-octet IPv4 address, redirection destination</t>
        </section>

        <section title="Atom Type  2: IPv4 Prefix with Weight">
          <t>Indicating the redirection path is weighted and to a IPv4
          address. The format is shown below:</t>

          <t><figure title="Atom Type  2: IPv4 Prefix with Weight">
              <artwork align="left"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type: 2    |   Length: 7                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Flag(2)            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            IPv4(4)                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Weight(1)  |
+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure></t>

          <t>Length: MUST be 7.</t>

          <t>Flags: 2 octets, reserved for future use, MUST be set to 0 upon
          the sender and MUST be ignored upon the reciever.</t>

          <t>IPv4: 4-octet IPv4 address, redirection destination</t>

          <t>Weight: 1 octet, values from 1~255, load balancing weight</t>
        </section>

        <section title="Atom Type  3: IPv4 Prefix with Color">
          <t>Indicating the redirection path is unweighted and to a SR-TE
          tunnel. The format is shown below:</t>

          <t><figure title="Atom Type  3: IPv4 Prefix with Color">
              <artwork align="left"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type: 3    |   Length: 10                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Flag(2)            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            IPv4(4)                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            Color(4)                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure></t>

          <t>Length: MUST be 10.</t>

          <t>Flags: 2 octets, reserved for future use, MUST be set to 0 upon
          the sender and MUST be ignored upon the reciever.</t>

          <t>IPv4: 4-octet IPv4 address, SR-TE tunnel Endpoint for
          redirection</t>

          <t>Color: 4 octets, SR-TE tunnel Color for redirection</t>
        </section>

        <section title="Atom Type  4: IPv4 Prefix with Color and Weight">
          <t>Indicating the redirection path is weighted and to a SR-TE
          tunnel. The format is shown below:</t>

          <t><figure title="Atom Type  4: IPv4 Prefix with Color and Weight">
              <artwork align="left"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type: 4    |   Length: 11                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Flag(2)            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            IPv4(4)                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            Color(4)                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Weight(1)  |
+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure></t>

          <t>Length: MUST be 11.</t>

          <t>Flags: 2 octets, reserved for future use, MUST be set to 0 upon
          the sender and MUST be ignored upon the reciever.</t>

          <t>IPv4: 4-octet IPv4 address, SR-TE tunnel Endpoint for
          redirection</t>

          <t>Color: 4 octets, SR-TE tunnel Color for redirection</t>

          <t>Weight: 1 octet, values from 1~255, load balancing weight</t>
        </section>

        <section title="Atom Type  5: IPv6 Prefix Only">
          <t>Indicating the redirection path is unweighted and to a IPv6
          address. The format is shown below:</t>

          <t><figure title="Atom Type  5: IPv6 Prefix Only">
              <artwork align="left"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type: 5    |   Length: 18                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Flag(2)            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           IPv6(16)                            |
~                                                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure></t>

          <t>Length: MUST be 18.</t>

          <t>Flags: 2 octets, reserved for future use, MUST be set to 0 upon
          the sender and MUST be ignored upon the reciever.</t>

          <t>IPv6: 16-octet IPv6 address, redirection destination</t>
        </section>

        <section title="Atom Type  6: IPv6 Prefix with Weight">
          <t>Indicating the redirection path is weighted and to a IPv6
          address. The format is shown below:</t>

          <t><figure title="Atom Type  6: IPv6 Prefix with Weight">
              <artwork align="left"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type: 6    |   Length: 19                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Flag(2)            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           IPv6(16)                            |
~                                                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Weight(1)  |
+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure></t>

          <t>Length: MUST be 19.</t>

          <t>Flags: 2 octets, reserved for future use, MUST be set to 0 upon
          the sender and MUST be ignored upon the reciever.</t>

          <t>IPv6: 16-octet IPv6 address, redirection destination</t>

          <t>Weight: 1 octet, values from 1~255, load balancing weight</t>
        </section>

        <section title="Atom Type  7: IPv6 Prefix with Color">
          <t>Indicating the redirection path is unweighted and to a SRv6
          tunnel. The format is shown below:</t>

          <t><figure title="Atom Type  7: IPv6 Prefix with Color">
              <artwork align="left"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type: 7    |   Length: 22                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Flag(2)            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           IPv6(16)                            |
~                                                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            Color(4)                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure></t>

          <t>Length: MUST be 22.</t>

          <t>Flags: 2 octets, reserved for future use, MUST be set to 0 upon
          the sender and MUST be ignored upon the reciever.</t>

          <t>IPv6: 16-octet IPv6 address, SRv6 tunnel Endpoint for
          redirection</t>

          <t>Color: 4 octets, SRv6 tunnel Color for redirection</t>
        </section>

        <section title="Atom Type  8: IPv6 Prefix with Color and Weight">
          <t>Indicating the redirection path is weighted and to a SRv6 tunnel.
          The format is shown below:</t>

          <t><figure title="Atom Type  8: IPv6 Prefix with Color and Weight">
              <artwork align="left"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type: 8    |   Length: 23                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Flag(2)            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           IPv6(16)                            |
~                                                               ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            Color(4)                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Weight(1)  |
+-+-+-+-+-+-+-+-+
]]></artwork>
            </figure></t>

          <t>Length: MUST be 23.</t>

          <t>Flags: 2 octets, reserved for future use, MUST be set to 0 upon
          the sender and MUST be ignored upon the reciever.</t>

          <t>IPv6: 16-octet IPv6 address, SRv6 tunnel Endpoint for
          redirection</t>

          <t>Color: 4 octets, SRv6 tunnel Color for redirection</t>

          <t>Weight: 1 octet, values from 1~255, load balancing weight</t>
        </section>
      </section>
    </section>

    <section title="Scenarios">
      <t>This section describes a few use-case scenarios when deploying
      "Redirect Load Balancing Group" community type.</t>

      <t><list style="hanging">
          <t hangText="Weighted atom types:">Atoms contain a Weight field,
          such as Type 2, 4, 6, 8</t>

          <t hangText="Unweighted atom types:">Atoms do not contain a Weight
          field, such as Type 1, 3, 5, 7</t>
        </list></t>

      <section title="ECMP">
        <t>A system that originates a flowspec route with a "Redirect Load
        Balancing Group" community, among which its parameter TLV contains
        more than 1 atoms. If not all atoms are of a weighted type, these
        atoms will form a ECMP group.</t>

        <t>Implementations MUST be prepared to accept a Parameter TLV with
        both weighted and unweighted atoms. In this case, the Weight field of
        the weighted atom SHOULD be ignored.</t>
      </section>

      <section title="UCMP">
        <t>A system that originates a flowspec route with a "Redirect Load
        Balancing Group" community, among which its parameter TLV contains
        more than 1 atoms. If all atoms are of a weighted type, these atoms
        will form a UCMP group.</t>

        <t>In this case, the Weight field value of these atoms SHOULD NOT be
        ignored, and the values are used as the ratio of the UCMP group.</t>
      </section>
    </section>

    <section title="Error Handling">
      <t>Comply with Error Handling Procedure in <xref
      target="I-D.ietf-idr-wide-bgp-communities">"BGP Community Container
      Attribute"</xref>.</t>

      <t>In addition:</t>

      <section title="Redirect Group Wide Community Parameter TLV">
        <t>A "Redirect Load Balancing Group" community container with no or
        multiple parameter TLVs SHOULD be considered malformed, and a "treat
        as withdraw" behavior is expected.</t>
      </section>

      <section title="Redirect Group Wide Community Parameter Sub-TLVs">
        <t>If the length and type of a sub-TLV do not match, the "Redirect
        Load Balancing Group" community container SHOULD be considered
        malformed, and a "treat as withdraw" behavior is expected.</t>
      </section>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t/>

      <section title="BGP Wide Communities Community Type : Redirect Group">
        <t>This document requests a new community value under "Registered Type
        1 BGP Wide Community Community Types" registery. This registery is
        defined and requested in <xref
        target="I-D.ietf-idr-wide-bgp-communities">"BGP Community Container
        Attribute"</xref>.</t>

        <t>Requested value:</t>

        <t><figure>
            <artwork align="center"><![CDATA[Name                             Type Value
----                             ----------
Redirect Load Balancing Group       TBD
]]></artwork>
          </figure></t>
      </section>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>A system that originates a flowspec route with a "Redirect Load
      Balancing Group" BGP wide community can cause many receivers of that
      route to redirect traffic to a single next-hop, overwhelming that
      next-hop and resulting in inadvertent or deliberate denial-of-service.
      This is also a concern about the "redirect to IP" extended community,
      therefore this document introduces no additional security considerations
      than those already covered in <xref target="RFC8955"/>.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include="reference.I-D.ietf-idr-wide-bgp-communities"?>

      <?rfc include="reference.I-D.ietf-idr-flowspec-redirect-ip"?>

      <?rfc include="reference.I-D.jiang-idr-ts-flowspec-srv6-policy"?>
    </references>

    <references title="References">
      <?rfc include="reference.RFC.8955"?>

      <?rfc include="reference.RFC.8956"?>
    </references>
  </back>
</rfc>
