<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-decraene-idr-nlri-error-handling-00" category="std" consensus="true" submissionType="IETF" xml:lang="en" updates="7606" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title>NLRI Error handling</title>
    <seriesInfo name="Internet-Draft" value="draft-decraene-idr-nlri-error-handling-00"/>
    <author initials="B." surname="Decraene" fullname="Bruno Decraene">
      <organization>Orange</organization>
      <address>
        <email>bruno.decraene@orange.com</email>
      </address>
    </author>
    <author initials="J. G." surname="Scudder" fullname="John G. Scudder">
      <organization>HPE</organization>
      <address>
        <email>jgs@juniper.net</email>
      </address>
    </author>
    <date year="2025" month="October" day="15"/>
    <area>rtg</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <keyword>bgp</keyword>
    <keyword>error-handling</keyword>
    <keyword>NLRI</keyword>
    <abstract>
      <?line 60?>

<t>RFC 7606 partially revises the error handling for BGP UPDATE messages.
It reduces the cases of BGP session reset by defining and using less impactful error handling approaches, such as attribute discard and treat-as-withdraw when applicable.
The treat-as-withdraw approach requires that the entire NLRI field of the MP_REACH_NLRI attribute be successfully parsed. This typically means parsing errors in MP_REACH_NLRI cannot be handled by any means short of session reset.
This is exacerbated by the use of non-key data within NLRI, which introduces parsing complexity and additional error cases.</t>
      <t>This specification defines a non-transitive BGP attribute, the "Treat-As-Withdraw Attribute", to encode NLRIs as per the format of MP_UNREACH_NLRI.
This attribute is used to allow the treat-as-withdraw error-handling approach to be used in case an error in the MP_UNREACH_NLRI attribute prevents the parsing of its NLRIs.</t>
      <t>This document updates RFC 7606 by mandating that the Treat-As-Withdraw Attribute appear before the MP_REACH_NLRI (or any other) attribute in an UPDATE message.</t>
    </abstract>
  </front>
  <middle>
    <?line 71?>

<section anchor="intro">
      <name>Introduction</name>
      <t>According to the base BGP specification <xref target="RFC4271"/>, a BGP speaker that receives an UPDATE message containing a malformed attribute is required to reset the session over which the offending attribute was received.
This behavior is undesirable because a session reset impacts not only routes with the offending attribute but also other valid routes exchanged over the session.</t>
      <t><xref target="RFC7606"/> revises BGP error handling, with the goal of minimizing the impact on routing of a malformed UPDATE message, while maintaining protocol correctness to the extent possible.
For most BGP attributes, a malformed attribute may be handled using attribute discard or treat-as-withdraw.
Both approaches preserve the routing of all the NLRIs not advertised in the affected BGP UPDATE message.
However, as indicated in Section 3 of <xref target="RFC7606"/>, treat-as-withdraw can only be used if the entire NLRI field of the MP_REACH_NLRI attribute is successfully parsed.
This typically means parsing errors in MP_REACH_NLRI cannot be handled by any means short of session reset.</t>
      <t><xref target="RFC4760"/> allows the Border Gateway Protocol (BGP) to advertise general routing information in the Network Layer Reachability Information (NLRI) field of the UPDATE message.
Some specifications, such as <xref target="RFC8277"/>, <xref target="I-D.ietf-idr-bgp-car"/>, and <xref target="I-D.ietf-idr-bgp-ct"/> carry both a key field and a non-key field in the NLRI.
The key field is typically the real NLRI.
The non-key field carries extra data that is NLRI-specific and hence not located in the BGP path attributes for packing optimization purposes.
For example, <xref target="RFC8277"/> carries the Prefix in the key field and one label (stack) in the non-key field.
As another example, <xref target="I-D.ietf-idr-bgp-car"/> defines a BGP CAR SAFI explicitly carrying Key Fields and Non-Key Fields as a list of TLVs.
In case of a BGP withdraw, the key is indicated in the MP_UNREACH_NLRI attribute to withdraw the unfeasible routes, while the non-key data is typically not encoded.</t>
      <t>This specification defines a new BGP non-transitive attribute, the "Treat-As-Withdraw Attribute", to carry the NLRIs using the simple and existing format of MP_UNREACH_NLRI.
This attribute is used to allow the treat-as-withdraw error-handling approach to be used when there is an error in the MP_UNREACH_NLRI attribute that prevents the parsing of its NLRIs.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="format">
      <name>Treat-As-Withdraw Attribute</name>
      <t>The Treat-As-Withdraw attribute is an optional, non-transitive BGP path attribute with type code TBD1. 
The format of the Treat-As-Withdraw attribute is the same as the format of the MP_UNREACH_NLRI as defined in Section 4 of <xref target="RFC4760"/>.</t>
    </section>
    <section anchor="sending">
      <name>Sending the Treat-As-Withdraw Attribute</name>
      <t>The Treat-As-Withdraw attribute may be sent in any BGP UPDATE message carrying the MP_REACH_NLRI attribute.
It <bcp14>MUST NOT</bcp14> be sent in an UPDATE message not carrying the MP_REACH_NLRI attribute.
To facilitate the determination of the NLRI field in an UPDATE message with a malformed attribute, the Treat-As-Withdraw <bcp14>SHALL</bcp14> be encoded as the very first path attribute in an UPDATE message, followed by the MP_REACH_NLRI attribute. (This represents an update to Section 5.1 <xref target="RFC7606"/>, which mandated that the MP_REACH_NLRI come first.)
The ordering of NLRIs within the Treat-As-Withdraw <bcp14>MUST</bcp14> be the same as their ordering within the corresponding MP_REACH_NLRI. <!-- This is only needed if the requirement to compare the TAW to the MP_REACH_NLRI during normal operation is retained. If we end up deciding on the other approach instead, i.e., ignore the TAW unless there is an error, this ordering requirement should be removed. The reasoning for imposing the ordering requirement is, if we're going to always compare them, we are adding work to the inner loop of the protocol, for every update, so we should minimize that work. Requiring identical ordering means the comparison can be guaranteed to be O(N) in the number of NLRI; if ordering isn't required, the worst-case is more like O(N^2) or in any case not as good as O(N). -->
      </t>
      <t>If the AFI/SAFI specification allows for different NLRI encodings in the MP_UNREACH_NLRI, the sender <bcp14>MUST</bcp14> use the simplest encoding. The receiver <bcp14>MUST</bcp14> accept any valid encoding. For example, <xref target="RFC3107"/> allows the use of either the MPLS label stack originally sent or the static 0x800000 value. The latter is simpler in that the size is smaller, fixed, and the number of labels to parse is minimized.</t>
      <t>The Treat-As-Withdraw attribute is generally useful as its encoding is simpler than the encoding of the MP_REACH_NLRI, hence it maximizes the chances of handling an error in the MP_REACH_NLRI attribute using the treat-as-withdraw approach. 
<!-- Furthermore, in some implementations, it may be the case that a different code path is used to generate the MP_UNREACH_NLRI encoding than is used to generate the MP_REACH_NLRI encoding. This can be seen as beneficial, analogous to "it's ideal if redundant parts come from different suppliers". -->
It is specifically useful for AFI/SAFI carrying non-key data in the NLRI such as <xref target="RFC8277"/>, <xref target="I-D.ietf-idr-bgp-car"/>, and <xref target="I-D.ietf-idr-bgp-ct"/> as these NLRI are longer and more complex, hence have a higher probability of error. In addition, in case of error, they have a lower probability of being able to parse the full list of NLRIs.</t>
    </section>
    <section anchor="receiving">
      <name>Receiving the Treat-As-Withdraw Attribute</name>
      <t>An UPDATE message with a malformed MP_REACH_NLRI attribute and a correctly formed Treat-As-Withdraw attribute <bcp14>SHALL</bcp14> be handled using the approach of "treat-as-withdraw".
The UPDATE message <bcp14>SHALL</bcp14> be handled as if received with only the Treat-As-Withdraw attribute - all other attributes being ignored - and the Treat-As-Withdraw Attribute handled as an MP_UNREACH_NLRI attribute.</t>
      <t>In the case of an UPDATE message with a correctly formed MP_REACH_NLRI attribute, the Treat-As-Withdraw attribute <bcp14>SHOULD</bcp14> be parsed and its list of NLRI compared to the list of NLRI present in the MP_REACH_NLRI attribute.
In case of difference, the Treat-As-Withdraw attribute <bcp14>SHALL</bcp14> be ignored.
However, because this reveals an error in either the Treat-As-Withdraw attribute or the MP_REACH_NLRI attribute, a BGP speaker must provide debugging facilities to permit issues caused by a malformed attribute to be diagnosed.
At a minimum, such facilities must include logging an error listing the NLRI involved and containing the entire malformed UPDATE message when such an attribute is detected.
The malformed UPDATE message should be analyzed, and the root cause should be investigated.</t>
      <!-- When a BGP speaker receives a BGP route that includes the Treat-As-Withdraw attribute, it MUST discard the Treat-As-Withdraw attribute after having successfully parsed this BGP UPDATE. -->

</section>
    <section anchor="error">
      <name>Treat-As-Withdraw attribute Error Handling</name>
      <t>The Treat-As-Withdraw attribute has the same format as the MP_UNREACH_NLRI and hence has the same conditions under which it is considered malformed.
As per <xref target="receiving"/>, an UPDATE message with a malformed Treat-As-Withdraw attribute is handled using the approach of "attribute discard".</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>IANA is requested to allocate a new optional, non-transitive attribute called "Treat-As-Withdraw" from the BGP Path Attributes registry of the Border Gateway Protocol (BGP) Parameters group.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Value</th>
            <th align="left">Code</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">TBD1</td>
            <td align="left">Treat-As-Withdraw</td>
            <td align="left">(this doc)</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>The Treat-As-Withdraw attribute does not change BGP security considerations.
An attacker having the ability to send or modify a BGP Message has the ability to withdraw any NLRI, with or without the Treat-As-Withdraw attribute.</t>
    </section>
    <section anchor="Acknowledgements">
      <name>Acknowledgements</name>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC4271">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
            <author fullname="T. Li" initials="T." role="editor" surname="Li"/>
            <author fullname="S. Hares" initials="S." role="editor" surname="Hares"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
              <t>The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems. This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
              <t>BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR). These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP. BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
              <t>This document obsoletes RFC 1771. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4271"/>
          <seriesInfo name="DOI" value="10.17487/RFC4271"/>
        </reference>
        <reference anchor="RFC4760">
          <front>
            <title>Multiprotocol Extensions for BGP-4</title>
            <author fullname="T. Bates" initials="T." surname="Bates"/>
            <author fullname="R. Chandra" initials="R." surname="Chandra"/>
            <author fullname="D. Katz" initials="D." surname="Katz"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="January" year="2007"/>
            <abstract>
              <t>This document defines extensions to BGP-4 to enable it to carry routing information for multiple Network Layer protocols (e.g., IPv6, IPX, L3VPN, etc.). The extensions are backward compatible - a router that supports the extensions can interoperate with a router that doesn't support the extensions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4760"/>
          <seriesInfo name="DOI" value="10.17487/RFC4760"/>
        </reference>
        <reference anchor="RFC7606">
          <front>
            <title>Revised Error Handling for BGP UPDATE Messages</title>
            <author fullname="E. Chen" initials="E." role="editor" surname="Chen"/>
            <author fullname="J. Scudder" initials="J." role="editor" surname="Scudder"/>
            <author fullname="P. Mohapatra" initials="P." surname="Mohapatra"/>
            <author fullname="K. Patel" initials="K." surname="Patel"/>
            <date month="August" year="2015"/>
            <abstract>
              <t>According to the base BGP specification, a BGP speaker that receives an UPDATE message containing a malformed attribute is required to reset the session over which the offending attribute was received. This behavior is undesirable because a session reset would impact not only routes with the offending attribute but also other valid routes exchanged over the session. This document partially revises the error handling for UPDATE messages and provides guidelines for the authors of documents defining new attributes. Finally, it revises the error handling procedures for a number of existing attributes.</t>
              <t>This document updates error handling for RFCs 1997, 4271, 4360, 4456, 4760, 5543, 5701, and 6368.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7606"/>
          <seriesInfo name="DOI" value="10.17487/RFC7606"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC3107">
          <front>
            <title>Carrying Label Information in BGP-4</title>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <author fullname="E. Rosen" initials="E." surname="Rosen"/>
            <date month="May" year="2001"/>
            <abstract>
              <t>This document specifies the way in which the label mapping information for a particular route is piggybacked in the same Border Gateway Protocol (BGP) Update message that is used to distribute the route itself. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3107"/>
          <seriesInfo name="DOI" value="10.17487/RFC3107"/>
        </reference>
        <reference anchor="RFC8277">
          <front>
            <title>Using BGP to Bind MPLS Labels to Address Prefixes</title>
            <author fullname="E. Rosen" initials="E." surname="Rosen"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>This document specifies a set of procedures for using BGP to advertise that a specified router has bound a specified MPLS label (or a specified sequence of MPLS labels organized as a contiguous part of a label stack) to a specified address prefix. This can be done by sending a BGP UPDATE message whose Network Layer Reachability Information field contains both the prefix and the MPLS label(s) and whose Next Hop field identifies the node at which said prefix is bound to said label(s). This document obsoletes RFC 3107.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8277"/>
          <seriesInfo name="DOI" value="10.17487/RFC8277"/>
        </reference>
        <reference anchor="I-D.ietf-idr-bgp-car">
          <front>
            <title>BGP Color-Aware Routing (CAR)</title>
            <author fullname="Dhananjaya Rao" initials="D." surname="Rao">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Swadesh Agrawal" initials="S." surname="Agrawal">
              <organization>Cisco Systems</organization>
            </author>
            <date day="20" month="February" year="2025"/>
            <abstract>
              <t>   This document describes a BGP based routing solution to establish
   end-to-end intent-aware paths across a multi-domain transport
   network.  The transport network can span multiple service provider
   and customer network domains.  The BGP intent-aware paths can be used
   to steer traffic flows for service routes that need a specific
   intent.  This solution is called BGP Color-Aware Routing (BGP CAR).

   This document describes the routing framework and BGP extensions to
   enable intent-aware routing using the BGP CAR solution.  The solution
   defines two new BGP SAFIs (BGP CAR SAFI and BGP VPN CAR SAFI) for
   IPv4 and IPv6.  It also defines an extensible NLRI model for both
   SAFIs that allow multiple NLRI types to be defined for different use
   cases.  Each type of NLRI contains key and TLV based non-key fields
   for efficient encoding of different per-prefix information.  This
   specification defines two NLRI types, Color-Aware Route NLRI and IP
   Prefix NLRI.  It defines non-key TLV types for MPLS label stack,
   Label Index and SRv6 SIDs.  This solution also defines a new Local
   Color Mapping (LCM) Extended Community.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-car-16"/>
        </reference>
        <reference anchor="I-D.ietf-idr-bgp-ct">
          <front>
            <title>BGP Classful Transport Planes</title>
            <author fullname="Kaliraj Vairavakkalai" initials="K." surname="Vairavakkalai">
              <organization>Juniper Networks, Inc.</organization>
            </author>
            <author fullname="Natrajan Venkataraman" initials="N." surname="Venkataraman">
              <organization>Juniper Networks, Inc.</organization>
            </author>
            <date day="28" month="February" year="2025"/>
            <abstract>
              <t>   This document specifies a mechanism referred to as "Intent Driven
   Service Mapping".  The mechanism uses BGP to express intent based
   association of overlay routes with underlay routes having specific
   Traffic Engineering (TE) characteristics satisfying a certain Service
   Level Agreement (SLA).  This is achieved by defining new constructs
   to group underlay routes with sufficiently similar TE characteristics
   into identifiable classes (called "Transport Classes"), that overlay
   routes use as an ordered set to resolve reachability (Resolution
   Schemes) towards service endpoints.  These constructs can be used,
   for example, to realize the "IETF Network Slice" defined in TEAS
   Network Slices framework.

   Additionally, this document specifies protocol procedures for BGP
   that enable dissemination of service mapping information in a network
   that may span multiple cooperating administrative domains.  These
   domains may be administered either by the same provider or by closely
   coordinating providers.  A new BGP address family that leverages RFC
   4364 ("BGP/MPLS IP Virtual Private Networks (VPNs)") procedures and
   follows RFC 8277 ("Using BGP to Bind MPLS Labels to Address
   Prefixes") NLRI encoding is defined to enable each advertised
   underlay route to be identified by its class.  This new address
   family is called "BGP Classful Transport", a.k.a., BGP CT.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-ct-39"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
