<?xml version="1.0" encoding="US-ASCII"?>
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com)
     by Daniel M Kohn (private) -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
]>
<?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-wang-idr-path-attribute-orf-00"
     ipr="trust200902">
  <front>
    <title abbrev="PA-ORF">Path Attribute Outbound Route Filter (PA-ORF) for
    BGP-4</title>

    <author fullname="Aijun Wang" initials="A" surname="Wang">
      <organization>China Telecom</organization>

      <address>
        <postal>
          <street>Beiqijia Town, Changping District</street>

          <city>Beijing</city>

          <region>Beijing</region>

          <code>102209</code>

          <country>China</country>
        </postal>

        <email>wangaj3@chinatelecom.cn</email>
      </address>
    </author>

    <date day="25" month="August" year="2026"/>

    <area>RTG Area</area>

    <workgroup>IDR Working Group</workgroup>

    <keyword>RFC</keyword>

    <abstract>
      <t>This document defines a family of Outbound Route Filter (ORF) Types
      for controlling the propagation of BGP Path Attributes. </t>

      <t>The Path Attribute ORFs (PA-ORFs) enable a BGP speaker to dynamically
      request that a peer suppress, remove, refine, or constrain the
      propagation of selected BGP Path Attributes when constructing outbound
      UPDATE messages for a given AFI/SAFI.</t>

      <t>This document defines four ORF Types:</t>

      <t> Path Attribute Type ORF; </t>

      <t> Path Attribute Subtype ORF; </t>

      <t> Unknown Path Attribute ORF; and </t>

      <t> Path Attribute Propagation Scope ORF.</t>

      <t>These ORF Types reuse the ORF Capability and ROUTE-REFRESH procedures
      defined in <xref target="RFC5291"/>. No new BGP Path Attribute or BGP
      message type is introduced. </t>

      <t>PA-ORFs are intended to reduce unintended propagation of BGP Path
      Attributes, especially Optional Transitive attributes whose semantics
      are valid only within a limited administrative, service, or technology
      domain.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>The Outbound Route Filtering framework defined in <xref
      target="RFC5291"/> allows a BGP speaker to install route filtering
      information on a peer so that the peer can constrain its outbound route
      advertisements. Existing ORF types primarily operate on NLRI. They
      answer the question of whether a route should be advertised to a
      peer.</t>

      <t>Modern BGP deployments increasingly use Path Attributes to carry
      information whose semantics are more specific than the reachability
      information itself. Examples include tunnel information, Segment Routing
      information, service-specific metadata, and other attributes that are
      meaningful only within a particular domain or deployment context. When
      such attributes are Optional Transitive, they may propagate beyond their
      intended scope.</t>

      <t>This document defines a family of Path Attribute ORF (PA-ORF). PA-ORF
      extends the ORF model so that a receiving speaker can express
      preferences about the Path Attributes included in outbound UPDATE
      messages sent by its peer. The purpose is not to change the semantics of
      existing attributes, but to provide a dynamic and interoperable
      mechanism for limiting undesired attribute propagation.</t>

      <section title="Requirements Language">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
        "OPTIONAL" 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>
      </section>
    </section>

    <section title="Terminology">
      <t>The following terms are used in This document:<list style="symbols">
          <t>AFI: Address Family Identifier, defined in <xref
          target="RFC4760"/></t>

          <t>BGP: Border Gateway Protocol, defined in <xref
          target="RFC4271"/></t>

          <t>ORF: Outbound Route Filter, defined in <xref
          target="RFC5291"/></t>

          <t>SAFI: Subsequent Address Family Identifier, defined in <xref
          target="RFC4760"/></t>
        </list></t>

      <t/>
    </section>

    <section title="Problem Statement">
      <t>BGP Path Attributes may carry information that is useful only inside
      a limited operational context. If such attributes are propagated outside
      that context, the receiving speaker may not need them, may not
      understand them, or may interpret them in a different context from that
      intended by the originator. This behavior is one form of Attribute
      Escape, which is described in detail in <xref
      target="I-D.haas-idr-bgp-attribute-escape"/></t>

      <t>Operators can deploy local export policies to remove undesired
      attributes at administrative boundaries. However, those policies are
      locally configured, difficult to coordinate dynamically, and often
      vendor-specific. There is no standard mechanism by which a receiving
      speaker can request that a peer avoid sending a selected class of Path
      Attributes while continuing to advertise the associated NLRI.</t>
    </section>

    <section title="Design Overview">
      <t>PA-ORF follows the architectural model of <xref target="RFC5291"/>. A
      speaker that does not want to receive certain attributes sends PA-ORF
      entries to its peer. The peer installs those entries as part of its
      outbound processing for that neighbor. When constructing UPDATE
      messages, the peer applies local export policy first and then applies
      PA-ORF before encoding the UPDATE.</t>

      <t>The default and preferred PA-ORF disposition is attribute stripping.
      Under this disposition, the route remains advertised, but the selected
      Path Attribute or selected component of a Path Attribute is omitted.
      Route suppression is also defined for cases where removing the attribute
      would make the advertisement semantically invalid.</t>
    </section>

    <section title="PA-ORF Capability Advertisement">
      <t>PA-ORF support is advertised using the BGP Capability mechanism. The
      capability indicates, for each AFI/SAFI, whether the speaker is able to
      send PA-ORF entries, receive PA-ORF entries, or both. The capability is
      intentionally aligned with the ORF capability structure defined by <xref
      target="RFC5291"/> so that an implementation can treat PA-ORF as a new
      ORF type rather than as a separate control protocol.</t>

      <t>A speaker MUST NOT send PA-ORF entries for an AFI/SAFI unless the
      peer has advertised that it is willing to receive PA-ORF entries for
      that AFI/SAFI. A speaker that has not negotiated PA-ORF for a given
      AFI/SAFI MUST ignore PA-ORF information received for that AFI/SAFI.</t>

      <t>The PA-ORF capability value is encoded as follows:</t>

      <t><figure>
          <artwork align="center"><![CDATA[ +-----------------------------------------+
 |AFI(2 octets)                             |
 +-----------------------------------------+
 |Reserved(1 octet)                        | 
 +-----------------------------------------+
 |SAFI(1 octet)                            |
 +-----------------------------------------+
 |Number of PA-ORF Types(1 octet)          |
 +-----------------------------------------+
 |PA-ORF Type 1(1 octet)                   |
 +-----------------------------------------+
 |Send/Receive 1(1 octet)                  |
 +-----------------------------------------+
 |... ...                                  |
 +-----------------------------------------+
 |PA-ORF Type N( 1 octet)                  |
 +-----------------------------------------+
 |Send/Receive N(1 octet)                  |
 +-----------------------------------------+

Figure 1: PA-ORF Capability Encoding Format
]]></artwork>
        </figure></t>

      <t/>

      <t>The Send/Receive field uses the same model as <xref
      target="RFC5291"/>: <figure>
          <artwork align="left"><![CDATA[ 1 RECEIVE: the speaker is willing to receive PA-ORF entries
 2 SEND: the speaker is willing to send PA-ORF entries. 
 3 BOTH: the speaker is willing to send and receive entries.
]]></artwork>
        </figure></t>

      <t/>

      <t>A PA-ORF Type identifies a specific kind of attribute filter. This
      document defines four initial PA-ORF Types:</t>

      <t><figure>
          <artwork align="left"><![CDATA[ TBD1 Attribute Type Filter 
 TBD2 Attribute Subtype Filter
 TBD3 Unknown Attribute Filter
 TBD4 Attribute Propagation Scope Filter  ]]></artwork>
        </figure></t>

      <t/>

      <t>Although the capability permits per-type negotiation, an
      implementation that supports this specification SHOULD support Type
      TBD1.</t>

      <t>Support for Types TBD2, TBD3, and TBD4 is OPTIONAL unless required by
      a deployment profile or a future specification.</t>
    </section>

    <section title="PA-ORF Message Encoding">
      <t>PA-ORF entries are carried in the ROUTE-REFRESH message using the ORF
      extension model defined by <xref target="RFC5291"/>. The ROUTE-REFRESH
      message identifies the AFI/SAFI to which the PA-ORF information applies
      and contains one or more PA-ORF entries.</t>

      <t>The PA-ORF information is scoped to the BGP session and to the
      AFI/SAFI indicated in the ROUTE-REFRESH message. A PA-ORF entry for one
      AFI/SAFI MUST NOT affect UPDATE messages for another AFI/SAFI.</t>

      <t>The high-level encoding is:</t>

      <t><figure>
          <artwork align="center"><![CDATA[ +-----------------------------------------+
 |AFI(2 octets)                            |
 +-----------------------------------------+
 |Reserved(1 octet)                        | 
 +-----------------------------------------+
 |SAFI(1 octet)                            |
 +-----------------------------------------+
 |When-to-refresh(1 octet)                 |
 +-----------------------------------------+
 |PA-ORF Type (1 octet)                   |
 +-----------------------------------------+
 |Length of PA-ORF entries(2 octets)       |
 +-----------------------------------------+
 |PA-ORF Entry 1                           |
 +-----------------------------------------+
 |... ...                                  |
 +-----------------------------------------+
 |PA-ORF Entry N                           |
 +-----------------------------------------+

  Figure 2: PA-ORF Message Encoding Format
]]></artwork>
        </figure>The When-to-refresh field follows the <xref
      target="RFC5291"/>. A value of IMMEDIATE requests that the advertising
      speaker apply the new PA-ORF state and refresh the affected outbound
      advertisements. A value of DEFER allows the advertising speaker to
      install the PA-ORF state without immediately refreshing the affected
      routes.</t>
    </section>

    <section title="PA-ORF Common Entry Format">
      <t>Each PA-ORF entry begins with a common header followed by
      type-specific information.</t>

      <t>The common header provides the operation to perform, the match
      semantics, the disposition to apply, and a sequence number used for
      ordering.</t>

      <t><figure>
          <artwork align="center"><![CDATA[ +-----------------------------------------+
 |Action|Match|Disposition|Reserved        |
 +-----------------------------------------+
 |Sequence(4 octets)                       | 
 +-----------------------------------------+
 |Type-Specific Information(variable)      |
 +-----------------------------------------+
Figure 3: PA-ORF Entry Common Part Encoding Format
]]></artwork>
        </figure></t>

      <t>The Action(2bits) field defines how the receiving speaker wants the
      entry to affect the peer's PA-ORF state:</t>

      <t><figure>
          <artwork><![CDATA[ 0 ADD, installs or replaces a PA-ORF entry
 1 REMOVE,deletes a matching PA-ORF entry.
 2 REMOVE-ALL,deletes all PA-ORF entries of the indicated PA-ORF Type for the relevant AFI/SAFI that were installed by the peer through PA-ORF. REMOVE-ALL MUST NOT remove locally configured export policy.
 3 Reserved]]></artwork>
        </figure></t>

      <t>The Match(1bit) field defines whether the type-specific information
      describes attributes to permit or deny: ADD . REMOVE REMOVE-ALL</t>

      <figure>
        <artwork><![CDATA[ 0 PERMIT, entry can be used to create exceptions or to express an explicit allowlist
 1 DENY,entry requests that matching attributes not be sent to the requesting peer.
]]></artwork>
      </figure>

      <t/>

      <t>The Disposition(2 bits) field defines the behavior applied to
      matching attributes:</t>

      <figure>
        <artwork><![CDATA[ 0 ATTRIBUTE-STRIP,removes the matching attribute or matching sub-component of the attribute from the outbound UPDATE while preserving the NLRI advertisement where possible.
 1 ROUTE-SUPPRESS,suppresses the entire route advertisement to the peer.
 2 TREAT-AS-WITHDRAW,is provided for deployments that prefer withdrawal semantics when the advertisement cannot be safely encoded without the matching attribute.
 3 Reserved
]]></artwork>
      </figure>

      <t/>

      <t>ATTRIBUTE-STRIP is the default disposition and SHOULD be used unless
      the sender determines that removing the attribute would make the UPDATE
      invalid or would create misleading semantics. If a selected
      sub-component is removed and the containing attribute becomes empty or
      invalid according to the attribute specification, the containing
      attribute MUST be removed. If removing the containing attribute would
      make the route advertisement semantically invalid, local policy
      determines whether the route is suppressed.</t>

      <t>The Sequence field is used to order PA-ORF entries of the same PA-ORF
      Type within the same AFI/SAFI. Lower sequence values are evaluated
      before higher sequence values unless local policy specifies otherwise.
      Sequence values are significant only within the PA-ORF state installed
      by the same peer for the same AFI/SAFI and PA-ORF Type.</t>

      <section title="Path Attribute Type Filter ORF">
        <t>The Path Attribute Type Filter ORF provides coarse-grained control
        over complete BGP Path Attributes. It is used when the receiving
        speaker wants to suppress or strip an entire attribute identified by
        its BGP Path Attribute Type Code.</t>

        <t>The type-specific information for an Attribute Type Filter is:</t>

        <t><figure>
            <artwork><![CDATA[  +------------------------------------------------+
  | Attribute Type Code (1 octet)                  |
  +------------------------------------------------+
Figure 4: Attribute Type Filter ORF Encoding Format
]]></artwork>
          </figure></t>

        <t>The Attribute Type Code is the value assigned by IANA in the BGP
        Path Attributes registry. A DENY entry with ATTRIBUTE-STRIP
        disposition requests that the advertising speaker omit the specified
        attribute from outbound UPDATE messages for the relevant AFI/SAFI.</t>

        <t>This filter is suitable for attributes whose presence is entirely
        unwanted by the receiving speaker. For example, a receiving speaker at
        an inter-domain boundary may want to receive the reachability
        information but not receive a domain-specific Segment Routing
        attribute. Attribute Type Filter allows the NLRI to remain visible
        while removing the attribute semantics that should not cross the
        boundary.</t>

        <t>If the specified attribute is mandatory for the route advertisement
        or cannot be safely removed according to the attribute specification,
        the advertising speaker MUST NOT generate an invalid UPDATE. In that
        case, the advertising speaker SHOULD either suppress the route to the
        peer or apply local policy. The decision is local because the
        advertising speaker remains authoritative for its outbound routing
        behavior.</t>
      </section>

      <section title="Path Attribute Subtype Filter ORF">
        <t>Some BGP Path Attributes are containers for more specific semantic
        elements. Examples include attributes that carry TLVs, tunnel types,
        community structures, encapsulation information, or service-specific
        sub-elements. Removing the entire attribute may be too coarse, because
        the receiving speaker may want to suppress only one sub-element while
        preserving other information carried by the same attribute.</t>

        <t>The Path Attribute Subtype Filter ORF provides this finer
        granularity. The type-specific information is:</t>

        <t><figure>
            <artwork align="center"><![CDATA[ +-----------------------------------------+
 |Attribute Type Code(1 octet)             |
 +-----------------------------------------+
 |Selector Type(2 octet)                   | 
 +-----------------------------------------+
 |Selector Length(1 octet)                 |
 +-----------------------------------------+
 |Selector Value(variable)                 |
 +-----------------------------------------+
Figure 5: Attribute Subtype Filter ORF Encoding Format
]]></artwork>
          </figure></t>

        <t>The Attribute Type Code identifies the parent BGP Path Attribute.
        The Selector Type identifies the namespace in which the selector is
        interpreted. The Selector Length gives the length of the Selector
        Value. The Selector Value identifies the sub-element to match.</t>

        <t>This document defines the following initial Selector Types:</t>

        <t><figure>
            <artwork><![CDATA[ 1 Tunnel Type, used when the parent attribute carries tunnel information and the receiving speaker wants to suppress a specific tunnel type.
 2 Prefix-SID TLV Type,used for Prefix-SID TLVs
 3 BGP-LS TLV Type,used for BGP-LS TLVs. Selector
]]></artwork>
          </figure></t>

        <t>When a subtype selector matches a sub-component, ATTRIBUTE-STRIP
        removes only the matching sub-component. The advertising speaker then
        validates the resulting attribute. If the parent attribute remains
        valid, it may be advertised with the remaining sub-components. If the
        parent attribute becomes empty or invalid, the parent attribute MUST
        be removed. If the route would become invalid or misleading without
        the parent attribute, the advertising speaker applies local policy or
        suppresses the route.</t>

        <t>Attribute Subtype Filter is especially useful for attributes such
        as Tunnel Encapsulation, where the receiving speaker may accept one
        encapsulation type but reject another. It avoids unnecessary loss of
        useful attribute information while still limiting propagation of
        unwanted semantics.</t>
      </section>

      <section title="Unknown Path Attribute Filter ORF">
        <t>Unknown Optional Transitive attributes present a specific
        operational problem. BGP is designed so that a speaker that does not
        recognize an Optional Transitive attribute can propagate it. This
        behavior supports incremental deployment, but it also means that
        unknown attributes may cross administrative boundaries without any
        speaker on the path understanding their semantics.</t>

        <t>The Unknown Path Attribute Filter ORF allows a receiving speaker to
        request that the advertising speaker remove unknown attributes that
        match selected flag conditions. The type-specific information is:</t>

        <t><figure>
            <artwork align="center"><![CDATA[ +-----------------------------------------+
 |Attribute Flags Mask(1 octet)            |
 +-----------------------------------------+
 |Attribute Flags Value(1 octet)           | 
 +-----------------------------------------+
Figure 6: Unknown Attribute Filter ORF Encoding Format
]]></artwork>
          </figure>The Attribute Flags Mask identifies which bits in the BGP
        Attribute Flags field are significant. The Attribute Flags Value
        identifies the required values for those bits. A common use is to
        match attributes whose Optional and Transitive bits are both set.</t>

        <t>This filter applies only to attributes unknown to the advertising
        speaker at the point of outbound processing. If the advertising
        speaker recognizes the attribute, then Attribute Type Filter or
        Attribute Subtype Filter is more precise and SHOULD be used.</t>

        <t>The advertising speaker MUST NOT corrupt the Partial bit semantics
        of an attribute that it continues to propagate. If an unknown
        attribute is stripped, it is simply omitted from the outbound UPDATE
        to the requesting peer. If local policy requires preservation of
        unknown transitive attributes, local policy overrides the PA-ORF
        request.</t>

        <t>This ORF type is intended for administrative boundaries, route
        servers, inter-domain route reflection designs, and other locations
        where operators want to reduce propagation of attributes whose
        semantics are not explicitly supported.</t>
      </section>

      <section title="Path Attribute Propagation Scope Filter ORF">
        <t>The Path Attribute Propagation Scope Filter ORF provides a
        mechanism for a speaker to associate a propagation constraint with a
        specific Path Attribute or a specific component of a Path Attribute
        that it sends to a peer. Unlike the Attribute Type Filter, which is
        used by a receiving speaker to request that an attribute not be sent
        to it, the Attribute Propagation Scope Filter is used to express that
        an attribute may be sent to the peer but should not be further
        propagated beyond an indicated scope.</t>

        <t>The type-specific information is:</t>

        <t><figure>
            <artwork align="center"><![CDATA[ +-----------------------------------------+
 |Attribute Type Code(1 octet)             |
 +-----------------------------------------+
 |Propagation Scope(1 octet)               | 
 +-----------------------------------------+
 |Propagation Action(1 octet)              | 
 +-----------------------------------------+
 |Selector Type(1 octet)                   | 
 +-----------------------------------------+
 |Selector Length(2 octet)                 |
 +-----------------------------------------+
 |Selector Value(variable)                 |
 +-----------------------------------------+
Figure 5: Attribute Propagation Scope Filter ORF Encoding Format
]]></artwork>
          </figure></t>

        <t>The Attribute Type Code identifies the parent BGP Path Attribute to
        which the propagation constraint applies. The Propagation Scope
        identifies the boundary beyond which the matching attribute or
        matching sub-component should not be propagated. The Propagation
        Action identifies the behavior to apply when advertising beyond that
        scope. The optional selector fields allow the constraint to apply to a
        sub-component of the parent attribute rather than to the entire
        attribute. If Selector Length is zero, the constraint applies to the
        entire parent attribute and the Selector Value field is absent.</t>

        <t>This document defines the following initial Propagation Scope
        Values:</t>

        <t><figure>
            <artwork><![CDATA[ 0 Local,means that the attribute is not intended to be re-advertised.
 1 AS, means that the attribute is intended to remain within the receiving speaker's autonomous system..
 2 Confederation, means that the attribute is intended to remain within a confederation.. 
 3 Bilateral, means that the attribute is intended to remain within the bilateral relationship in which it was received and should not be redistributed to unrelated peers.. 
 4 Internet, means that no additional PA-ORF propagation restriction is requested by this entry.
]]></artwork>
          </figure></t>

        <t>This document defines the following initial Propagation Action
        values:</t>

        <figure>
          <artwork><![CDATA[ 0 STRIP-BEYOND-SCOPE,removes the matching attribute or matching sub-component when the route is advertised beyond the indicated scope.
 1 SUPPRESS-ROUTE-BEYOND-SCOPE, suppresses the whole route advertisement beyond the indicated scope.  
 2 TREAT-AS-WITHDRAW-BEYOND-SCOPE,causes withdrawal semantics to be used for routes that would otherwise be advertised beyond the indicated scope.
]]></artwork>
        </figure>

        <t/>

        <t>The Attribute Propagation Scope Filter is cooperative. A speaker
        that accepts this PA-ORF Type from a peer agrees to apply the
        installed propagation constraint when re-advertising routes received
        from that peer, unless overridden by local policy. A speaker that does
        not want a peer to influence downstream propagation behavior SHOULD
        NOT advertise willingness to receive this PA-ORF Type.</t>

        <t>The Attribute Propagation Scope Filter is cooperative. A speaker
        that accepts this PA-ORF Type from a peer agrees to apply the
        installed propagation constraint when re-advertising routes received
        from that peer, unless overridden by local policy. A speaker that does
        not want a peer to influence downstream propagation behavior SHOULD
        NOT advertise willingness to receive this PA-ORF Type.</t>

        <t>The selector fields reuse the selector semantics defined for the
        Attribute Subtype Filter. This allows a propagation constraint to be
        applied to a specific tunnel type, TLV, community subtype, or other
        sub-component rather than to the entire Path Attribute. For example, a
        speaker may allow a Tunnel Encapsulation Attribute to be propagated
        but constrain a specific tunnel type to a bilateral scope.</t>

        <t>The Path Attribute Propagation Scope Filter ORF is intended to
        address the root of many Attribute Escape scenarios. It allows the
        originator or sender of a domain-specific attribute to communicate the
        intended propagation boundary to a peer in a dynamic and interoperable
        manner. It does not impose mandatory routing policy across
        administrative boundaries unless the receiving speaker has explicitly
        negotiated and accepted this PA-ORF Type.</t>
      </section>
    </section>

    <section title="PA-ORF Processing Model">
      <t>PA-ORF is applied by the advertising speaker during construction of
      outbound UPDATE messages for the peer that installed the PA-ORF entries.
      The intended processing order is:</t>

      <t><figure>
          <artwork><![CDATA[Best Path Selection
   |
Local Export Policy
   |
PA-ORF Processing
   |
UPDATE Encoding
   |
Transmission ]]></artwork>
        </figure>This order is important. PA-ORF is not a replacement for
      local policy. The advertising speaker first determines whether a route
      is eligible for advertisement according to its own policy. Only after
      the route is otherwise eligible does PA-ORF influence the attributes
      included in the outbound UPDATE.</t>

      <t>A PA-ORF rule received from a peer MUST NOT cause the advertising
      speaker to advertise an attribute that local policy would otherwise
      suppress. Similarly, PA-ORF MUST NOT cause the advertising speaker to
      advertise a route that local export policy would otherwise deny. The
      receiving speaker can request less information, but it cannot require
      the advertising speaker to send more information.</t>

      <t>When a PA-ORF entry matches an attribute, the advertising speaker
      applies the disposition associated with the first applicable entry
      according to the ordering rules. If no PA-ORF entry matches, the route
      is advertised according to local export policy and normal BGP attribute
      processing.</t>

      <t>An implementation MAY optimize PA-ORF processing by indexing entries
      by attribute type, subtype selector, or scope. Such optimization MUST
      NOT change the externally visible behavior of the ordered rule
      evaluation.</t>
    </section>

    <section title="Route Refresh Interaction">
      <t>PA-ORF uses Route Refresh to install, modify, and remove outbound
      attribute filtering state. This reuses existing BGP machinery and avoids
      defining a separate policy transport channel.</t>

      <t>When a speaker sends PA-ORF entries with immediate refresh semantics,
      the receiving peer installs the entries and recomputes the affected
      Adj-RIB-Out state for that AFI/SAFI. The peer then sends updated
      advertisements reflecting the new PA-ORF state. The refresh may include
      routes whose attributes have changed because selected attributes were
      stripped, routes that are newly suppressed, and withdrawals for routes
      no longer advertised as a result of the new policy.</t>

      <t>When deferred refresh semantics are used, the peer installs the
      PA-ORF entries but is not required to immediately refresh affected
      routes. Deferred refresh is useful when a receiving speaker intends to
      install multiple filters and wants to avoid repeated recomputation or
      repeated UPDATE bursts.</t>

      <t>If the BGP Enhanced Route Refresh procedures are supported, the
      advertising speaker SHOULD use Begin-of-RIB-Refresh and End-of-RIB-
      Refresh markers when performing an immediate refresh. This allows the
      receiving speaker to identify the refresh boundary and distinguish
      policy-induced updates from unrelated routing changes.</t>

      <t>PA-ORF state is session state. Unless explicitly preserved by a
      future extension, PA-ORF state is removed when the BGP session is reset.
      After a session is re-established, PA-ORF entries MUST be re-advertised
      if the receiving speaker still wants them applied.</t>
    </section>

    <section title="Ordering and Conflict Resolution">
      <t>PA-ORF can express both PERMIT and DENY entries. Conflicts are
      resolved through ordered evaluation using the Sequence field. An
      implementation MUST evaluate entries of the same PA-ORF Type, same
      AFI/SAFI, and same installing peer in ascending Sequence order unless
      local policy specifies a stricter behavior.</t>

      <t>The first matching entry determines the disposition. If no entry
      matches, the attribute is processed according to local export policy and
      normal BGP rules.</t>

      <t>When entries of different PA-ORF Types apply to the same attribute,
      more specific filters SHOULD take precedence over less specific filters.
      The precedence is:</t>

      <t><figure>
          <artwork><![CDATA[Path Attribute Subtype Filter
Path Attribute Type Filter
Unknown Path Attribute Filter
Path Attribute Propagation Scope Filter
]]></artwork>
        </figure></t>

      <t>This precedence reflects the fact that subtype-level matching is more
      precise than whole-attribute matching, and whole-attribute matching is
      more precise than general unknown or scope-based matching.</t>

      <t>Local policy MAY override this precedence. However, implementations
      SHOULD provide deterministic behavior and SHOULD expose the effective
      PA-ORF rule order to operators for troubleshooting.</t>
    </section>

    <section title="Error Handling">
      <t>PA-ORF is intended to improve operational safety and therefore MUST
      NOT introduce unnecessary session resets. A malformed PA-ORF entry MUST
      NOT cause the BGP session to be reset. The receiving speaker SHOULD
      ignore the malformed entry and SHOULD log the event.</t>

      <t>If a PA-ORF message contains an unsupported PA-ORF Type that was not
      negotiated for the AFI/SAFI, the unsupported type MUST be ignored. Other
      valid PA-ORF entries in the same Route Refresh message MAY be
      processed.</t>

      <t>If an Attribute Subtype Filter contains a Selector Length that is
      inconsistent with the remaining message length, the entry is malformed
      and MUST be ignored. If the Selector Type is unknown, the entry MUST be
      ignored unless local policy explicitly provides a mapping for that
      selector.</t>

      <t>A REMOVE operation that does not match an installed entry MUST be
      silently ignored. A REMOVE-ALL operation applies only to PA-ORF state
      installed by the peer through PA-ORF and MUST NOT remove local export
      policy or operator-configured attribute filters.</t>

      <t>If applying ATTRIBUTE-STRIP or STRIP-BEYOND-SCOPE would result in an
      invalid BGP UPDATE, the advertising speaker MUST NOT send the invalid
      UPDATE. The speaker MAY suppress the route, apply a different locally
      configured disposition, or retain the original attribute if local policy
      requires it. In all cases, the speaker remains responsible for
      generating valid BGP messages.</t>
    </section>

    <section title="Operational Considerations ">
      <t>PA-ORF gives a receiving speaker a dynamic way to request less
      attribute information from a peer. Operators should treat PA-ORF as a
      cooperative mechanism, not as a substitute for explicit policy at
      important administrative boundaries.</t>

      <t>Implementations SHOULD allow operators to configure which peers are
      allowed to install PA-ORF entries and which PA-ORF Types are accepted
      from each peer. For example, an operator may accept Attribute Type
      Filters from a customer peer but reject Unknown Attribute Filters or
      Scope Filters from the same peer.</t>

      <t>Operators should also consider update churn. Installing a broad
      PA-ORF entry with immediate refresh may cause many routes to be
      re-advertised. Deferred refresh can reduce churn when multiple policy
      changes are expected.</t>

      <t>PA-ORF can interact with add-path, route reflection, confederations,
      route servers, and inter-AS VPN designs. The PA-ORF state is
      neighbor-specific. A route reflector or route server that receives
      PA-ORF entries from one client applies those entries only when
      constructing outbound advertisements to that client or when enforcing
      accepted propagation constraints for routes received from that client.
      The entries do not automatically affect advertisements to other clients
      except where a negotiated Attribute Propagation Scope Filter explicitly
      applies to re-advertisement behavior.</t>
    </section>

    <section title="Security Considerations">
      <t>PA-ORF affects outbound routing information sent by a BGP speaker. If
      accepted from an untrusted or unauthorized peer, PA-ORF could be used to
      remove attributes needed for correct forwarding, suppress routes, or
      hide policy-relevant information. Therefore, a speaker SHOULD accept
      PA-ORF only from peers that are authorized to influence outbound
      attribute filtering.</t>

      <t>PA-ORF MUST NOT override locally configured export policy. The
      advertising speaker retains final authority over what it advertises. A
      peer can request that fewer attributes be sent, but it cannot force the
      advertising speaker to send attributes or routes that local policy would
      otherwise block.</t>

      <t>Implementations SHOULD provide logging and operational visibility for
      installed PA-ORF entries. Operators need to determine whether an
      attribute was removed because of local policy, PA-ORF, or attribute
      validation rules.</t>

      <t>PA-ORF does not change the security properties of the underlying BGP
      session. Existing protections for BGP sessions, including transport
      security and peer authentication mechanisms where deployed, remain
      applicable.</t>
    </section>

    <section title="IANA Considerations">
      <section anchor="iana" title="BGP ORF Type Registry">
        <t>IANA is requested to allocate four new ORF Types from the BGP ORF
        Types registry:</t>

        <figure align="center">
          <artwork><![CDATA[ +==========+=======================================+=========================+
 | Value    | Description                           | Reference               |
 +==================================================+=========================+
 | TBD1(67) | Path Attribute Type ORF               | This document           |
 +----------+---------------------------------------+-------------------------+
 | TBD2(68) | Path Attribute Subtype ORF            | This document           |
 +----------+---------------------------------------+-------------------------+
 | TBD3(69) | Unknown Path Attribute ORF            | This document           |
 +----------+---------------------------------------+-------------------------+
 | TBD4(70) | Path Attribute Propagation Scope      | This document           |
 +----------+---------------------------------------+-------------------------+
]]></artwork>
        </figure>

        <t/>
      </section>

      <section title="PA-ORF Disposition Registry">
        <t>IANA is requested to create a new registry titled "BGP Path
        Attribute ORF Dispositions".</t>

        <t>The registration policy is Standards Action.</t>

        <t><figure align="center">
            <artwork><![CDATA[Under "Border Gateway Protocol (BGP) Parameters"
Registry: "PA-ORF Disposition Registry"
 +==========+=========================+
 | Value    | Name                    |
 +====================================+
 | 0        | ATTRIBUTE-STRIP         |
 +----------+-------------------------+
 | 1        | ROUTE-SUPPRESS          |
 +----------+-------------------------+
 | 2        | TREAT-AS-WITHDRAW       |
 +----------+-------------------------+
 | 3        | Reserved                |
 +----------+-------------------------+
]]></artwork>
          </figure></t>
      </section>

      <section title="PA-ORF Selector Type Registry">
        <t>IANA is requested to create a new registry titled "BGP Path
        Attribute ORF Selector Types".</t>

        <t>The registration policy is Standards Action.</t>

        <t>IANA should make initial assignments as follows:</t>

        <t><figure align="center">
            <artwork><![CDATA[Under "Border Gateway Protocol (BGP) Parameters"
Registry: "PA-ORF Selector Type Registry"
 +==========+============================+
 | Value    | Name                       |
 +=======================================+
 | 0        | Reserved                   |
 +----------+----------------------------+
 | 1        | Tunnel Type                |
 +----------+----------------------------+
 | 2        | Prefix-SID TLV Type        |
 +----------+----------------------------+
 | 4        | BGP-LS TLV Type            |
 +----------+----------------------------+
 | 5-255    | Reserved                   |
 +----------+----------------------------+
]]></artwork>
          </figure></t>
      </section>

      <section title="PA-ORF Propagation Scope Registry">
        <t>IANA is requested to create a new registry titled "BGP Path
        Attribute ORF Propagation Scope Values".</t>

        <t>The registration policy is Standards Action.</t>

        <t>IANA should make initial assignments as follows:</t>

        <t><figure align="center">
            <artwork><![CDATA[Under "Border Gateway Protocol (BGP) Parameters"
Registry: "PA-ORF Propagation Scope Registry"
 +==========+============================+
 | Value    | Name                       |
 +=======================================+
 | 0        | Local                      |
 +----------+----------------------------+
 | 1        | AS                         |
 +----------+----------------------------+
 | 2        | Confederation              |
 +----------+----------------------------+
 | 3        | Bilateral                  |
 +----------+----------------------------+
 | 4        | Internet                   |
 +----------+----------------------------+
 | 5-255    | Reserved                   |
 +----------+----------------------------+
]]></artwork>
          </figure></t>
      </section>

      <section title="PA-ORF Propagation Action Registry">
        <t>IANA is requested to create a new registry titled "BGP Path
        Attribute ORF Propagation Action".</t>

        <t>The registration policy is Standards Action.</t>

        <t>IANA should make initial assignments as follows:</t>

        <t><figure align="center">
            <artwork><![CDATA[Under "Border Gateway Protocol (BGP) Parameters"
Registry: "PA-ORF Propagation Action Registry"
 +==========+===============================+
 | Value    | Name                          |
 +==========================================+
 | 0        | STRIP-BEYOND-SCOPE            |
 +----------+-------------------------------+
 | 1        | SUPPRESS-ROUTE-BEYOND-SCOPE   |
 +----------+-------------------------------+
 | 2        | TREAT-AS-WITHDRAW-BEYOND-SCOPE|
 +----------+-------------------------------+
 | 3-255    | Reserved                      |
 +----------+-------------------------------+
]]></artwork>
          </figure></t>
      </section>
    </section>

    <section title="Contributor">
      <t>TBD</t>
    </section>

    <section title="Acknowledgement">
      <t>TBD.</t>
    </section>
  </middle>

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

      <?rfc include="reference.RFC.5291"?>

      <?rfc include='reference.RFC.4760'?>

      <?rfc include='reference.RFC.4271'?>

      <?rfc include='reference.RFC.8174'?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.I-D.haas-idr-bgp-attribute-escape'?>
    </references>
  </back>
</rfc>
