<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-opsawg-discardmodel-16" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="IM and DM for Packet Discard Reporting">Information and Data Models for Packet Discard Reporting</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-discardmodel-16"/>
    <author initials="J." surname="Evans" fullname="John Evans" role="editor">
      <organization>Individual</organization>
      <address>
        <email>john@nopacketleftbehind.net</email>
      </address>
    </author>
    <author initials="O." surname="Pylypenko" fullname="Oleksandr Pylypenko" role="editor">
      <organization>Nvidia</organization>
      <address>
        <postal>
          <street>2788 San Tomas Expy</street>
          <city>Santa Clara</city>
          <region>CA</region>
          <code>95051</code>
          <country>US</country>
        </postal>
        <email>opylypenko@nvidia.com</email>
      </address>
    </author>
    <author initials="J." surname="Haas" fullname="Jeffrey Haas">
      <organization>HPE</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>jeffrey.haas@hpe.com</email>
      </address>
    </author>
    <author initials="A." surname="Kadosh" fullname="Aviran Kadosh">
      <organization>Cisco Systems, Inc.</organization>
      <address>
        <postal>
          <street>170 West Tasman Dr.</street>
          <city>San Jose</city>
          <region>CA</region>
          <code>95134</code>
          <country>US</country>
        </postal>
        <email>akadosh@cisco.com</email>
      </address>
    </author>
    <author initials="M." surname="Boucadair" fullname="Mohamed Boucadair" role="editor">
      <organization>Orange</organization>
      <address>
        <postal>
          <country>France</country>
        </postal>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="30"/>
    <area>Operations and Management Area</area>
    <workgroup>Operations and Management Area Working Group</workgroup>
    <keyword>Troubleshooting</keyword>
    <keyword>Diagnostic</keyword>
    <keyword>Network Automation</keyword>
    <keyword>Network Service</keyword>
    <keyword>Resilience</keyword>
    <keyword>Robustness</keyword>
    <keyword>Root cause</keyword>
    <keyword>Anomaly</keyword>
    <keyword>Incident</keyword>
    <keyword>Customer experience</keyword>
    <abstract>
      <?line 106?>

<t>This document defines an Information Model and specifies a corresponding YANG data model for packet discard reporting. The Information Model provides an implementation-independent framework for classifying packet loss by its cause (e.g., errors, congestion, or policy). This classification enables operators to determine which losses are expected or intended and which are unintended, and to select appropriate mitigation actions, including automated mitigation of unintended packet loss. The YANG data model specifies an implementation of this Information Model for network elements with a focus on interface, device, and control-plane discards.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://o-pylypenko.github.io/draft-ietf-opsawg-discardmodel/draft-ietf-opsawg-discardmodel.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-opsawg-discardmodel/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Operations and Management Area Working Group  mailing list (<eref target="mailto:opsawg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/opsawg/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/opsawg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/o-pylypenko/draft-ietf-opsawg-discardmodel"/>.</t>
    </note>
  </front>
  <middle>
    <?line 110?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The primary function of a network is to transport and deliver packets according to service level objectives. For network operators, understanding both where and why packet loss occurs within a network is essential for effective operation. Device-reported packet loss provides the most direct signal for identifying service impact. While certain types of packet loss, such as policy-based discards, are intentional and part of normal network operation, unintended packet loss can impact customer services.  To automate network operations, operators must be able to detect customer-impacting packet loss, determine its root cause, and apply appropriate mitigation actions. Precise classification of packet loss is thus crucial to ensure that anomalous packet loss is easily detected and that the right action is taken to mitigate the impact. Taking the wrong action can make problems worse; for example, removing a congested device from service can exacerbate congestion by redirecting traffic to other already congested links or devices.</t>
      <t>Existing metrics for reporting packet loss, such as ifInDiscards, ifOutDiscards, ifInErrors, and ifOutErrors defined in "The Interfaces Group MIB" <xref target="RFC2863"/> and "A YANG Data Model for Interface Management" <xref target="RFC8343"/>, are insufficient for automating network operations. First, they lack precision; for instance, ifInDiscards aggregates all discarded inbound packets without specifying the cause, making it challenging to distinguish between intended and unintended discards. Second, these definitions are ambiguous, leading to inconsistent vendor implementations. For example, in some implementations ifInErrors accounts only for errored packets that are dropped, while in others, it includes all errored packets, whether they are dropped or not. Many implementations support more discard metrics than these, however, they have been inconsistently implemented due to the lack of a standardised classification scheme and clear semantics for packet loss reporting. For example, <xref target="RFC7270"/> provides support for reporting discards per flow in IP Flow Information Export (IPFIX) <xref target="RFC7011"/> using the forwardingStatus IPFIX Information Element, however, the defined drop reason codes also lack sufficient clarity to facilitate automated root cause analysis and impact mitigation (e.g., the "For us" reason code). A common operational workflow is to reconcile device- and interface-level packet loss with the traffic flows that were impacted. To support this, the IM defined in this document includes a flow component which applies the same discard classification at the flow level as at the device and interface levels, so that flow-level discard reporting (e.g., via IPFIX) can be directly correlated with device- and interface-level discard reporting.</t>
      <t>This document defines an Information Model (IM) and specifies a corresponding YANG Data Model (DM) for packet loss reporting to address the above issues. The IM provides precise classification of packet loss to enable accurate automated mitigation. The DM specifies a YANG implementation of this IM for network elements, while maintaining consistency through clear semantics.</t>
      <t>The scope of this document is limited to reporting Layer 3 (including MPLS <xref target="RFC3031"/>) packet discards and Layer 2 frame discards. The reported signals may trigger automated mitigation actions; the definition and execution of those actions are deployment-specific. Protocol actions associated with a discard (e.g., ICMP error message generation) are governed by the applicable protocol specifications and local policy.</t>
      <t><xref target="problem"/> describes the problem space and requirements. <xref target="rationale"/> explains the design rationale. <xref target="infomodel"/> defines the IM and its classification scheme. <xref target="datamodel"/> specifies the corresponding YANG data model and implementation requirements together with a set of usage examples, and the complete YANG module definition. Appendices <xref format="counter" target="wheredropped"/> and <xref format="counter" target="mapping"/> provide additional context and implementation guidance.</t>
      <section anchor="editorial-note-to-be-removed-by-the-rfc-editor">
        <name>Editorial Note (To be removed by the RFC Editor)</name>
        <t>Note to the RFC Editor: This section is to be removed prior to
   publication.</t>
        <t>This document contains placeholder values that need to be replaced
   with finalized values at the time of publication.  This note
   summarizes all of the substitutions that are needed.</t>
        <t>Please apply the following replacements:</t>
        <ul spacing="normal">
          <li>
            <t>XXXX --&gt; the assigned RFC number for this I-D</t>
          </li>
          <li>
            <t>2026-03-03 --&gt; the actual date of the publication of this document</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</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?>

<t>Tree diagrams used in this document follow the notation defined in <xref target="RFC8340"/>.</t>
      <t>This document makes use of the following terms:</t>
      <dl>
        <dt>Packet discard:</dt>
        <dd>
          <t>Any instance where a packet is dropped by a device, regardless of whether the discard was intended or unintended.</t>
        </dd>
        <dt>Intended packet discards (Intended discards, for short):</dt>
        <dd>
          <t>Packets dropped due to deliberate network policies or configurations designed to enforce security or Quality of Service (QoS). For example, packets dropped because they match an Access Control List (ACL) denying certain traffic types.</t>
        </dd>
        <dt>Unintended packet discards (Unintended discards, for short):</dt>
        <dd>
          <t>Packets that were dropped, which the network operator otherwise intended to deliver, indicating an error state.  There are many possible reasons for unintended packet loss, including: erroring links may corrupt packets in transit; incorrect routing tables may result in packets being dropped because they do not match a valid route; configuration errors may result in a valid packet incorrectly matching an ACL and being dropped.</t>
        </dd>
      </dl>
    </section>
    <section anchor="problem">
      <name>Problem Statement</name>
      <t>The fundamental problem for network operators is how to automatically detect when and where unintended packet loss is occurring and determine the appropriate action to mitigate it. For any network, there are a small set of potential actions that can be taken to mitigate customer impact when unintended packet loss is detected, for example:</t>
      <ol spacing="normal" type="1"><li>
          <t>Take a problematic device, link, or set of devices and/or links out of service.</t>
        </li>
        <li>
          <t>Return a device, link, or set of devices and/or links back into service.</t>
        </li>
        <li>
          <t>Move traffic to other links or devices to alleviate congestion or avoid problematic paths.</t>
        </li>
        <li>
          <t>Roll back a recent change to a device that might have caused the problem.</t>
        </li>
        <li>
          <t>Escalate to a network operator as a last resort when automated mitigation is not possible.</t>
        </li>
      </ol>
      <t>The ability to select the appropriate mitigation action depends on four key features of packet loss:</t>
      <dl>
        <dt>FEATURE-DISCARD-SCOPE:</dt>
        <dd>
          <t>Determines which devices, interfaces, and/or flows are impacted. This also needs to cover control-plane discards.</t>
        </dd>
        <dt>FEATURE-DISCARD-RATE:</dt>
        <dd>
          <t>The rate and/or magnitude of the discards, indicating the severity and urgency of the problem.  Rate may be expressed using absolute (e.g., packets per second (pps)) or relative (e.g., percent) values.</t>
        </dd>
        <dt>FEATURE-DISCARD-DURATION:</dt>
        <dd>
          <t>The duration of the discards which helps to distinguish transient from persistent issues.</t>
        </dd>
        <dt>FEATURE-DISCARD-CLASS:</dt>
        <dd>
          <t>The type or class of discards, which is crucial for selecting the appropriate type of mitigation. Examples may be:  error discards may require taking faulty components out of service, no-buffer discards may require traffic redistribution, or intended policy discards typically require no action. Refer to <xref target="ex-table"/> for more examples.</t>
        </dd>
      </dl>
      <t>While most of FEATURE-DISCARD-SCOPE, FEATURE-DISCARD-RATE, and FEATURE-DISCARD-DURATION are implicitly supported by the Interfaces Group MIB <xref target="RFC2863"/> and the YANG Data Model for Interface Management <xref target="RFC8343"/>, FEATURE-DISCARD-CLASS requires a more detailed classification scheme than they define. The IM provided in <xref target="infomodel"/> defines such a classification scheme to enable automated mapping from discard signals to appropriate mitigation actions.</t>
      <t>The classification defined in this document does not by itself determine whether a specific discard condition is intended or unintended. That determination is made by the operator, based on the discard class together with local policy, configured intent, baseline behaviour, duration, affected scope, and other operational context. For example, policy discards may be intended when they enforce a deliberate access-control rule, but unintended when a configuration error causes valid traffic to match that rule. Similarly, TTL-expired packets may be expected at a low baseline rate due to traceroute or other diagnostic activity, while a sustained increase above baseline may indicate convergence, a routing loop, or another operational fault.</t>
      <t>The purpose of the discard classification is to expose the signal with enough precision that an operator or automation system can make that determination consistently. <xref target="mapping"/> provides illustrative examples of how discard class, rate, duration, and inferred cause can be combined to determine whether a discard is unintended and what action, if any, is appropriate.</t>
    </section>
    <section anchor="rationale">
      <name>Design Rationale</name>
      <ol spacing="normal" type="1"><li>
          <t>The IM is defined using YANG <xref target="RFC7950"/>, with Data Structure Extensions <xref target="RFC8791"/>, allowing the model to remain abstract and decoupled from specific implementations in accordance with <xref target="RFC3444"/>. This abstraction supports different DM implementations, such as YANG or IPFIX <xref target="RFC7011"/>, while ensuring consistency across implementations. Using YANG for the IM enables this abstraction, leverages the community's familiarity with its syntax, and ensures lossless translation to the corresponding YANG data model, which is defined in <xref target="datamodel"/>.</t>
        </li>
        <li>
          <t>The number and granularity of discard classes defined in the IM represent a compromise. It aims to provide sufficient detail to enable appropriate automated actions while avoiding excessive detail, which may hinder quick problem identification.  Additionally, it helps to limit the quantity of data produced per interface, constraining the data volume and device CPU impacts.  While further granularity is possible, the defined schema has generally proven to be sufficient for the task of mitigating unintended packet loss.</t>
        </li>
        <li>
          <t>There are many possible ways to define the discard classification tree.  For example, an approach is to use a multi-rooted tree, rooted in each protocol. Instead, a better approach is to define a tree where protocol discards and causal discard classes are accounted for orthogonally.  This decision reduces the number of combinations of classes and has proven sufficient for determining mitigation actions.</t>
        </li>
      </ol>
    </section>
    <section anchor="infomodel">
      <name>Information Model (IM)</name>
      <ul empty="true">
        <li>
          <t>Design note: In order to ease reuse of the IM structure by DMs but without requiring these DMs to parse the "sx" structure defined in <xref target="RFC8791"/>, the main reusable nodes are defined in a common module (<xref target="common-module"/>) while the main IM structure is defined in <xref target="infomodel-module"/>.</t>
        </li>
      </ul>
      <section anchor="infomodel-structure">
        <name>Structure</name>
        <t>The IM defines a hierarchical classification scheme for packet discards, which captures where in a device the discards are accounted for (component), in which direction of traffic they were flowing (direction), whether they were successfully processed or discarded (type), what protocol layer they belong to (layer), and the specific reason for any discards (subtypes). This structure enables both high-level monitoring of total discards (i.e., aggregates) and more detailed triage to map to mitigation actions.</t>
        <t>The abstract structure of the IM is depicted in <xref target="tree-im-abstract"/>. The full YANG tree diagram of the IM is provided in <xref target="sec-im-full-tree"/>.</t>
        <figure anchor="tree-im-abstract">
          <name>Abstract IM Tree Structure</name>
          <artwork><![CDATA[
module: ietf-packet-discard-reporting-sx

  structure packet-discard-reporting:
    +-- control-plane {pdr-common:control-plane-stats}?
    |  +-- traffic* [direction]
    |  |  ...
    |  +-- discards* [direction]
    |     ...
    +-- interface* [name] {pdr-common:interface-stats}?
    |  +-- name        string
    |  +-- traffic* [direction]
    |  |  +-- direction    identityref
    |  |  +-- l2
    |  |  |  ...
    |  |  +-- l3
    |  |  |  ...
    |  |  +-- qos!
    |  |     ...
    |  +-- discards* [direction]
    |     +-- direction    identityref
    |     +-- l2
    |     |  ...
    |     +-- l3
    |     |  ...
    |     +-- errors
    |     |  +-- l2
    |     |  |  ...
    |     |  +-- l3
    |     |  |  ...
    |     |  +-- internal
    |     |     ...
    |     +-- policy
    |     |  +-- l2
    |     |  |  ...
    |     |  +-- l3
    |     |     ...
    |     +-- no-buffer
    |        +-- qos!
    |           +-- class* [id]
    |              |  ...
    |              +-- discard-type* [type]
    |                 ...
    +-- flow* [direction] {pdr-common:flow-reporting}?
    |  +-- direction    identityref
    |  +-- traffic
    |  |  +-- l2
    |  |  |  ...
    |  |  +-- l3
    |  |  |  ...
    |  |  +-- qos!
    |  |     ...
    |  +-- discards
    |     +-- l2
    |     |  ...
    |     +-- l3
    |     |  ...
    |     +-- errors
    |     |  +-- l2
    |     |  |  ...
    |     |  +-- l3
    |     |  |  ...
    |     |  +-- internal
    |     |     ...
    |     +-- policy
    |     |  +-- l2
    |     |  |  ...
    |     |  +-- l3
    |     |     ...
    |     +-- no-buffer
    |        +-- qos!
    |           +-- class* [id]
    |              |  ...
    |              +-- discard-type* [type]
    |                 ...
    +-- device {pdr-common:device-stats}?
       +-- traffic
       |  +-- l2
       |  |  ...
       |  +-- l3
       |  |  ...
       |  +-- qos!
       |     ...
       +-- discards
          +-- l2
          |  ...
          +-- l3
          |  ...
          +-- errors
          |  +-- l2
          |  |  ...
          |  +-- l3
          |  |  ...
          |  +-- internal
          |     ...
          +-- policy
          |  +-- l2
          |  |  ...
          |  +-- l3
          |     ...
          +-- no-buffer
             +-- qos!
                +-- class* [id]
                   |  ...
                   +-- discard-type* [type]
                      ...
]]></artwork>
        </figure>
        <t>The discard reporting can be organised into several types: control plane, interface, flow, and device. In order to allow for better mapping to underlying DMs, the IM supports a set of "features" to control the supported type.</t>
        <t>A complete classification path follows the pattern: component/direction/type/layer/subtype/sub-subtype/.../metric. <xref target="wheredropped"/> illustrates where these discards typically occur in a network device.  The elements of the tree are defined as follows:</t>
        <ul spacing="normal">
          <li>
            <t>Component:
            </t>
            <ul spacing="normal">
              <li>
                <t>control-plane: discards of traffic to or from a device's control plane.</t>
              </li>
              <li>
                <t>interface: discards of traffic to or from a specific network interface.</t>
              </li>
              <li>
                <t>flow: discards of traffic associated with a specific traffic flow.</t>
              </li>
              <li>
                <t>device: discards of traffic transiting the device.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Direction:
            </t>
            <ul spacing="normal">
              <li>
                <t>ingress: counters for incoming packets or frames.</t>
              </li>
              <li>
                <t>egress: counters for outgoing packets or frames.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Type:
            </t>
            <ul spacing="normal">
              <li>
                <t>traffic: counters for successfully received or transmitted packets or frames.</t>
              </li>
              <li>
                <t>discards: counters for packets or frames that were dropped.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Layer:
            </t>
            <ul spacing="normal">
              <li>
                <t>l2: Layer 2 traffic and discards. This covers both frame and byte counts.</t>
              </li>
              <li>
                <t>l3: Layer 3 traffic and discards. This covers both packet and byte counts.</t>
              </li>
            </ul>
          </li>
        </ul>
        <t>The hierarchical structure allows for future extensions while maintaining backward compatibility. New discard types can be added as new branches without affecting existing implementations.</t>
        <t>The corresponding YANG module is defined in <xref target="infomodel-module"/>.</t>
      </section>
      <section anchor="subtype-definitions">
        <name>Subtype Definitions</name>
        <dl>
          <dt>discards/policy/:</dt>
          <dd>
            <t>These are discards of packets that matched a configured policy, including: ACLs, traffic policers, unicast Reverse Path Forwarding (uRPF) checks, Denial-of-Service (DoS) protection rules, and explicit null routes. Such discards are typically intended, although whether a specific policy discard is intended is determined by the operator (see <xref target="intent"/>). In practice, ingress DoS protection policies are often realised using mechanisms such as ingress filtering and uRPF (<xref target="RFC2827"/>, <xref target="RFC3704"/>, and <xref target="RFC8704"/>), remotely triggered blackholing (<xref target="RFC3882"/>, <xref target="RFC5635"/>), or BGP Flow Specification-based filters (<xref target="RFC8955"/>, <xref target="RFC8956"/>, and <xref target="RFC9117"/>); all such policy-driven discards are reported under this class. Discards due to control-plane protection policies <xref target="RFC6192"/>, including the Generalized TTL Security Mechanism (GTSM) <xref target="RFC5082"/>, are reported under the control-plane component's policy discards. A GTSM discard indicates that the received TTL or Hop Limit is outside the configured expected range. Consistent with the requirements listed in <xref target="requirements"/>, a policy discard increments one and only one of the policy subtypes.</t>
          </dd>
          <dt>discards/errors/:</dt>
          <dd>
            <t>These are discards due to errors in processing packets or frames, which typically indicate unintended packet loss (see <xref target="intent"/>).  There are multiple subclasses:
</t>
            <ul spacing="normal">
              <li>
                <dl>
                  <dt>discards/errors/l2/rx/:</dt>
                  <dd>
                    <t>These are frames discarded due to errors in the received Layer 2 frame, including: Cyclic Redundancy Check (CRC) errors, invalid Media Access Control (MAC) addresses, invalid VLAN tags, frame size violations and other malformed frame conditions.</t>
                  </dd>
                </dl>
              </li>
              <li>
                <dl>
                  <dt>discards/errors/l3/rx/:</dt>
                  <dd>
                    <t>These discards occur due to errors in the received packet, indicating an upstream problem rather than an issue with the device dropping the errored packets, including: header checksum errors and invalid packet errors (i.e., incorrect version, incorrect header length, invalid options, and other malformed packet conditions).</t>
                  </dd>
                  <dt/>
                  <dd>
                    <t>These discards are based upon the outer header of packets.</t>
                  </dd>
                </dl>
              </li>
              <li>
                <dl>
                  <dt>discards/errors/l3/mtu-exceeded/:</dt>
                  <dd>
                    <t>These discards occur when the packet size exceeds the applicable MTU. The subclasses distinguish whether the forwarding node was permitted to fragment the packet (Sections <xref target="RFC791" section="3.1" sectionFormat="bare"/> and <xref target="RFC791" section="3.2" sectionFormat="bare"/> of <xref target="RFC791"/>, Sections <xref target="RFC8200" section="4.5" sectionFormat="bare"/> and <xref target="RFC8200" section="5" sectionFormat="bare"/> of <xref target="RFC8200"/>).</t>
                  </dd>
                </dl>
              </li>
              <li>
                <dl>
                  <dt>discards/errors/l3/ttl-expired:</dt>
                  <dd>
                    <t>These discards occur due to TTL <xref target="RFC791"/> (or Hop Limit <xref target="RFC8200"/>) expiry. These can occur, e.g., for the following reasons: normal traceroute operations, including MPLS LSP ping/traceroute <xref target="RFC8029"/> and pseudowire VCCV <xref target="RFC5085"/> which intentionally use TTL expiry, end-system TTL/Hop limit set too low, or routing loops in the network.</t>
                  </dd>
                </dl>
              </li>
              <li>
                <dl>
                  <dt>discards/errors/l3/no-route:</dt>
                  <dd>
                    <t>These discards occur due to a packet not matching any route in the routing table. This may be due to routing configuration errors or to transient conditions during convergence.</t>
                  </dd>
                </dl>
              </li>
              <li>
                <dl>
                  <dt>discards/errors/l3/neighbor-resolution-failure:</dt>
                  <dd>
                    <t>These discards occur when the forwarding engine cannot resolve or use the link-layer adjacency required to forward the packet to the selected next hop (<xref target="RFC826"/>, <xref target="RFC4861"/>).</t>
                  </dd>
                </dl>
              </li>
              <li>
                <dl>
                  <dt>discards/errors/internal/:</dt>
                  <dd>
                    <t>These discards occur due to internal device issues, including: parity errors in device memory or other internal hardware errors.  Any errored discards not explicitly assigned to other classes are also accounted for here.</t>
                  </dd>
                </dl>
              </li>
            </ul>
          </dd>
          <dt>discards/no-buffer/:</dt>
          <dd>
            <t>These are congestion-related discards, including tail-drop discards due to buffer exhaustion and discards due to an Active Queue Management (AQM) algorithm, such as Random Early Detection (RED) <xref target="RED93"/> or Controlled Delay (CoDel) <xref target="RFC8289"/>. Implementations <bcp14>MAY</bcp14> additionally report per-type counters in the <tt>discard-type</tt> list.</t>
          </dd>
        </dl>
        <t>An example of possible signal-to-mitigation action mapping is provided in <xref target="mapping"/>.</t>
      </section>
      <section anchor="common-module">
        <name>"ietf-packet-discard-reporting-common" YANG Module</name>
        <t>The "ietf-packet-discard-reporting-common" module imports "ietf-yang-types" defined in <xref target="RFC9911"/>. The module references <xref target="RFC8402"/>, <xref target="RFC8660"/>, <xref target="RFC8754"/>, and <xref target="RFC8986"/>.</t>
        <sourcecode markers="true" name="ietf-packet-discard-reporting-common@2026-03-03.yang"><![CDATA[
module ietf-packet-discard-reporting-common {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:"
          + "ietf-packet-discard-reporting-common";
  prefix pdr-common;

  import ietf-yang-types {
    prefix yang;
    reference
      "RFC 9911: Common YANG Data Types";
  }

  organization
    "IETF OPSAWG (Operations and Management Area Working Group)";
  contact
    "WG Web:   https://datatracker.ietf.org/wg/opsawg/
     WG List:  OPSAWG <mailto:opsawg@ietf.org>

     Editor:   John Evans
               <mailto:john@nopacketleftbehind.net>

     Editor:   Oleksandr Pylypenko
               <mailto:opylypenko@nvidia.com>

     Author:   Jeffrey Haas
               <mailto:jeffrey.haas@hpe.com>

     Author:   Aviran Kadosh
               <mailto:akadosh@cisco.com>

     Editor:   Mohamed Boucadair
               <mailto:mohamed.boucadair@orange.com>";
  description
    "This module defines a common YANG module for packet discard
     reporting.

     Copyright (c) 2026 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Revised BSD License
     set forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     All revisions of IETF and IANA published modules can be found
     at the YANG Parameters registry group
     (https://www.iana.org/assignments/yang-parameters).

     This version of this YANG module is part of RFC XXXX; see
     the RFC itself for full legal notices.";

  revision 2026-03-03 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: Information and Data Models for Packet Discard
                 Reporting";
  }

  /*
   * Features
   */

  feature control-plane-stats {
    description
      "Indicates support of control plane discard statistics.";
  }

  feature interface-stats {
    description
      "Indicates support of interface discard statistics.";
  }

  feature flow-reporting {
    description
      "Indicates support of flow discard reporting.";
  }

  feature device-stats {
    description
      "Indicates support of global device discard statistics.";
  }

  /*
   * Identities
   */

  identity direction {
    description
      "Defines a direction for the reported statistics.";
  }

  identity ingress {
    base direction;
    description
      "Reports statistics for the received packets from
       the network.";
  }

  identity egress {
    base direction;
    description
      "Reports statistics for the sent packets to
       the network.";
  }

  identity address-family {
    description
      "Defines a type for the address family.

       This identity is defined here rather than importing
       it from other YANG modules to simplify implementations
       and avoid inheriting dependencies of those modules.

       Additional address families can be added by defining
       identities derived from this base identity, without
       affecting existing implementations.";
  }

  identity ip {
    base address-family;
    description
      "Identity for IP address family.";
  }

  identity ipv4 {
    base ip;
    description
      "Identity for IPv4 address family.";
  }

  identity ipv6 {
    base ip;
    description
      "Identity for IPv6 address family.";
  }

  identity no-buffer-type {
    description
      "Defines a type for congestion-related discards.";
  }

  identity aqm {
    base no-buffer-type;
    description
      "Indicates a discard due to an Active Queue Management (AQM)
       algorithm.";
  }

  identity tail-drop {
    base no-buffer-type;
    description
      "Indicates a discard due to tail drop.";
  }

  /*
   * Groupings
   */

  grouping basic-packets {
    description
      "Grouping for packet counters.";
    leaf packets {
      type yang:counter64;
      description
        "Number of packets.";
    }
  }

  grouping basic-packets-bytes {
    description
      "Grouping for packet and byte counters.";
    uses basic-packets;
    leaf bytes {
      type yang:counter64;
      description
        "Number of bytes.";
    }
  }

  grouping basic-frames {
    description
      "Grouping for Layer 2 frame counters.";
    leaf frames {
      type yang:counter64;
      description
        "Number of Layer 2 frames.";
    }
  }

  grouping l2-traffic {
    description
      "Grouping for Layer 2 frame and byte counters.";
    uses basic-frames;
    leaf bytes {
      type yang:counter64;
      description
        "Number of Layer 2 bytes.";
    }
  }

  grouping l3-traffic {
    description
      "Layer 3 traffic counters per address family.";
    list address-family-stat {
      key "address-family";
      description
        "Reports per address family traffic counters.";
      leaf address-family {
        type identityref {
          base address-family;
        }
        description
          "Specifies an address family.";
      }
      uses basic-packets-bytes;
      container unicast {
        description
          "Unicast traffic counters.";
        uses basic-packets-bytes;
      }
      container multicast {
        description
          "Multicast traffic counters.";
        uses basic-packets-bytes;
      }
      container broadcast {
        when "derived-from-or-self(../address-family, "
           + "'pdr-common:ipv4')" {
          description
            "Only applicable for IPv4.";
        }
        description
          "Broadcast traffic counters.";
        uses basic-packets-bytes;
      }
    }
  }

  grouping class-list {
    description
      "Class-based traffic counters.";
    list class {
      key "id";
      min-elements 1;
      description
        "Class traffic counters.";
      leaf id {
        type string;
        description
          "Indicates a Quality of Service (QoS) class
           identifier.";
      }
      uses basic-packets-bytes;
    }
  }

  grouping qos {
    description
      "QoS traffic counters.";
    container qos {
      presence "QoS statistics are available.";
      description
        "Per-class QoS traffic counters.";
      uses class-list;
    }
  }

  grouping no-buffer-qos {
    description
      "QoS discard counters.";
    container qos {
      presence "QoS statistics are available.";
      description
        "Per-class QoS traffic counters.";
      list class {
        key "id";
        min-elements 1;
        description
          "Class traffic counters.";
        leaf id {
          type string;
          description
            "Indicates a QoS class identifier.";
        }
        uses basic-packets-bytes;
        list discard-type {
          key "type";
          description
            "Per-type discard counters.";
          leaf type {
            type identityref {
              base no-buffer-type;
            }
            description
              "Specifies the discard type.";
          }
          uses basic-packets-bytes;
        }
      }
    }
  }

  grouping traffic {
    description
      "All traffic counters.";
    container l2 {
      description
        "Layer 2 traffic counters.";
      uses l2-traffic;
    }
    container l3 {
      description
        "Layer 3 traffic counters.";
      uses l3-traffic;
    }
    uses qos;
  }

  grouping errors-l2-rx {
    description
      "Layer 2 ingress frame error discard counters.";
    container rx {
      description
        "Layer 2 ingress frame receive error discard
         counters.";
      leaf frames {
        type yang:counter64;
        description
          "The number of frames discarded due to errors
           with the received frame.";
      }
      leaf crc-error {
        type yang:counter64;
        description
          "The number of received frames discarded due to
            Cyclic Redundancy Check (CRC) error.";
      }
      leaf invalid-mac {
        type yang:counter64;
        description
          "The number of received frames discarded due to
           an invalid Media Access Control (MAC) address.
           Applies to Ethernet or Ethernet-derived
           encapsulations where MAC addresses are present.";
      }
      leaf invalid-vlan {
        type yang:counter64;
        description
          "The number of received frames discarded due to
           an invalid VLAN tag. Applies to Ethernet or
           Ethernet-derived encapsulations where VLAN tags
           are present.";
      }
      leaf invalid-frame {
        type yang:counter64;
        description
          "The number of invalid received frames discarded due to
           other reasons, not limited to: malformed frames,
           frame-size violations.";
      }
    }
  }

  grouping errors-l3 {
    description
      "Layer 3 packet error discard counters.";
    container rx {
      description
        "Counters for Layer 3 packets discarded due to errors
         in the received packet, indicating an upstream problem
         rather than an issue with the reporting device.";
      leaf packets {
        type yang:counter64;
        description
          "The number of Layer 3 packets discarded due to
           errors in the received packet.";
      }
      leaf checksum-error {
        type yang:counter64;
        description
          "Reports IPv4 packets discarded because validation of the
           IPv4 header checksum failed.

           This counter is applicable only to IPv4 packets. IPv6 does
           not include an internet-layer header checksum, so IPv6
           packets are not reported under this counter.";
      }
      leaf invalid-packet {
        type yang:counter64;
        description
          "The number of received invalid packets discarded due
           to other reasons, not limited to: invalid packet length,
           invalid header fields, invalid options, invalid protocol
           version, invalid flags or control bits, malformed
           packets.";
      }
    }
    container mtu-exceeded {
      description
        "Counters for packets discarded because their size exceeded
         the applicable Maximum Transmission Unit (MTU).";
      leaf packets {
        type yang:counter64;
        description
          "The total number of packets discarded because their size
           exceeded the applicable MTU.  This includes packets
           reported by the more specific counters in this
           container.";
      }
      leaf fragmentation-not-permitted {
        type yang:counter64;
        description
          "The number of packets discarded because the packet size
           exceeded the applicable MTU and the forwarding node was
           not permitted to fragment the packet.  This includes IPv4
           packets with the Don't Fragment (DF) bit set and IPv6
           packets, which forwarding nodes do not fragment.";
      }
      leaf fragmentation-permitted-not-performed {
        type yang:counter64;
        description
          "The number of packets discarded because the packet size
           exceeded the applicable MTU, fragmentation was permitted
           in principle, but the packet was not fragmented and
           forwarded.  This includes IPv4 packets with the DF bit
           clear.";
      }
      reference
        "RFC 791: Internet Protocol, Sections 3.1 and 3.2
         RFC 8200: Internet Protocol, Version 6 (IPv6)
                   Specification, Sections 4.5 and 5";
    }
    leaf ttl-expired {
      type yang:counter64;
      description
        "The number of packets discarded because the TTL
         (IPv4 or MPLS) expired or the Hop Limit (IPv6)
         was exceeded.";
    }
    leaf no-route {
      type yang:counter64;
      description
        "The number of received packets discarded because the
         destination address does not match a valid entry in the
         routing table. This includes packets discarded after
         outer header removal (e.g., MPLS label disposition or
         tunnel decapsulation) when the exposed IP header does
         not match a valid entry in the routing table. MPLS label
         lookup failures are reported under 'invalid-label'.";
    }
    leaf neighbor-resolution-failure {
      type yang:counter64;
      description
        "Reports packets discarded because the forwarding engine
         could not resolve or use the link-layer adjacency required
         to forward the packet to the selected next hop.

         This includes packets dropped because ARP resolution for an
         IPv4 next hop failed, Neighbor Discovery resolution for an
         IPv6 next hop failed, or the resolved neighbor entry was
         unusable according to local neighbor state.

         This counter applies when route selection identified a next
         hop, but forwarding could not complete because the required
         neighbor or adjacency information was unavailable or
         unusable. Packets discarded because no route matched
         the destination are reported under 'no-route'. Packets
         discarded due to internal device faults are reported
         under 'internal'.";
      reference
        "RFC 826: An Ethernet Address Resolution Protocol -- or --
                  Converting Network Protocol Addresses to 48.bit
                  Ethernet Address for Transmission on Ethernet
                  Hardware
         RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
    }
    leaf invalid-sid {
      type yang:counter64;
      description
        "The number of received packets discarded due to an
         invalid Segment Routing over IPv6 (SRv6) segment
         identifier (SID).
         This counter is incremented only by the node processing
         the SID (i.e., where the packet's destination address
         matches a locally instantiated SID); transit nodes that
         forward the packet without processing the SRH do not
         increment it. Discards of SRv6 packets whose
         destination address does not match a valid route are
         reported under 'no-route'.
         For SR-MPLS, SID lookup failures are reported under
         'invalid-label'.";
      reference
        "RFC 8402: Segment Routing Architecture
         RFC 8660: Segment Routing with the MPLS Data Plane
         RFC 8754: IPv6 Segment Routing Header (SRH)
         RFC 8986: Segment Routing over IPv6 (SRv6) Network
                   Programming";
    }
    leaf invalid-label {
      type yang:counter64;
      description
        "The number of received packets discarded because the
         top MPLS label does not match a valid Incoming Label
         Map (ILM) entry. This is the MPLS equivalent of
         'no-route'.";
      reference
        "RFC 3031: Multiprotocol Label Switching Architecture,
         Section 3.18";
    }
  }

  grouping errors-l3-int {
    description
      "Internal error discard counters.";
    leaf packets {
      type yang:counter64;
      description
        "The number of packets discarded due to internal
         errors.";
    }
    leaf parity-error {
      type yang:counter64;
      description
        "The number of packets discarded due to parity
         errors, which typically mean that the ASIC
         detected corruption in an internal memory, table,
         buffer, or metadata structure used while processing
         the packet, and dropped the packet rather than
         forwarding it using potentially bad state.";
    }
  }

  grouping errors-l2-tx {
    description
      "Layer 2 transmit error discard counters.";
    container tx {
      description
        "Layer 2 transmit frame error discard counters.";
      leaf frames {
        type yang:counter64;
        description
          "The number of Layer 2 frames discarded due to
           errors when transmitting.";
      }
    }
  }

  grouping errors-l3-tx {
    description
      "Layer 3 transmit error discard counters.";
    container tx {
      description
        "Layer 3 transmit packet error discard counters.";
      leaf packets {
        type yang:counter64;
        description
          "The number of Layer 3 packets discarded due to
           errors when transmitting.";
      }
    }
  }

  grouping errors {
    description
      "Error discard counters.";
    container l2 {
      description
        "Layer 2 frame error discard counters.";
      uses errors-l2-rx;
      uses errors-l2-tx;
    }
    container l3 {
      description
        "Layer 3 packet error discard counters.";
      uses errors-l3;
      uses errors-l3-tx;
    }
    container internal {
      description
        "Internal error discard counters.";
      uses errors-l3-int;
    }
  }

  grouping policy-l2 {
    description
      "Layer 2 policy frame discard counters.";
    leaf frames {
      type yang:counter64;
      description
        "The number of Layer 2 frames discarded due
         to policy.";
    }
    leaf acl {
      type yang:counter64;
      description
        "The number of frames discarded due to Layer 2
         Access Control Lists (ACLs).";
    }
  }

  grouping policy-l3 {
    description
      "Layer 3 policy packet discard counters.";
    leaf packets {
      type yang:counter64;
      description
        "The number of Layer 3 packets discarded due to policy.";
    }
    leaf acl {
      type yang:counter64;
      description
        "The number of packets discarded due to Layer 3
         (and higher layers) ACLs.";
    }
    container policer {
      description
        "Counters for packets discarded due to policer
         violations.";
      uses basic-packets-bytes;
      container classes {
        presence "Per-class policer statistics are available.";
        description
          "Per-class policer discard counters.";
        uses class-list;
      }
    }
    leaf null-route {
      type yang:counter64;
      description
        "The number of packets discarded due to matching
         a null route.";
    }
    leaf rpf {
      type yang:counter64;
      description
        "The number of packets discarded due to failing
         Reverse Path Forwarding (RPF) check.";
    }
    leaf dos {
      type yang:counter64;
      description
        "The number of packets discarded by dedicated
         Denial-of-Service (DoS) protection mechanisms, such as
         implementation-specific heuristics that identify and discard
         DoS traffic.

         Where a DoS attack is mitigated using an ACL or a null
         route, those discards are reported under 'acl' or
         'null-route' respectively, not under this counter, since
         the association with DoS mitigation is known only to the
         operator.";
    }
  }

  grouping discards {
    description
      "Discard counters.";
    container l2 {
      description
        "Layer 2 frame discard counters.";
      uses l2-traffic;
    }
    container l3 {
      description
        "Layer 3 packet discard counters.";
      uses l3-traffic;
    }
    container errors {
      description
        "Error discard counters.";
      uses errors;
    }
    container policy {
      description
        "Policy-related discard counters.";
      uses policy;
    }
    container no-buffer {
      description
        "Congestion-related discard counters.";
      uses no-buffer-qos;
    }
  }

  grouping policy {
    description
      "Policy-related discard counters.";
    container l2 {
      description
        "Layer 2 policy frame discard counters.";
      uses policy-l2;
    }
    container l3 {
      description
        "Layer 3 policy packet discard counters.";
      uses policy-l3;
    }
  }

  grouping traffic-and-discards {
    description
      "Specifies overall traffic and discard counters.";
    container traffic {
      description
        "Traffic counters.";
      uses traffic;
    }
    container discards {
      description
        "Discard counters.";
      uses discards;
    }
  }

  grouping interface {
    description
      "Interface-level traffic and discard counters.";
    list traffic {
      key "direction";
      description
        "Traffic counters.";
      leaf direction {
        type identityref {
          base direction;
        }
        description
          "Specifies a direction.";
      }
      uses traffic;
    }
    list discards {
      key "direction";
      description
        "Discard counters.";
      leaf direction {
        type identityref {
          base direction;
        }
        description
          "Specifies a direction.";
      }
      uses discards;
    }
  }

  grouping control-plane {
    description
      "Control plane packet counters.";
    list traffic {
      key "direction";
      description
        "Total control plane packets.";
      leaf direction {
        type identityref {
          base direction;
        }
        description
          "Specifies a direction.";
      }
      uses basic-packets-bytes;
    }
    list discards {
      key "direction";
      description
        "Control plane packet discard counters.";
      leaf direction {
        type identityref {
          base direction;
        }
        description
          "Specifies a direction.";
      }
      uses basic-packets-bytes;
      container policy {
        description
          "Number of control plane packets discarded due to policy.";
        uses basic-packets;
      }
    }
  }
}
]]></sourcecode>
      </section>
      <section anchor="infomodel-module">
        <name>"ietf-packet-discard-reporting-sx" YANG Module</name>
        <t>The "ietf-packet-discard-reporting-sx" module uses the "sx" structure defined in <xref target="RFC8791"/> and also imports the "ietf-packet-discard-reporting-common" module (<xref target="common-module"/>).</t>
        <sourcecode markers="true" name="ietf-packet-discard-reporting-sx@2026-03-03.yang"><![CDATA[
module ietf-packet-discard-reporting-sx {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-packet-discard-reporting-sx";
  prefix pdr-sx;

  import ietf-packet-discard-reporting-common {
    prefix pdr-common;
    reference
      "RFC XXXX: Information and Data Models for Packet Discard
                 Reporting";
  }
  import ietf-yang-structure-ext {
    prefix sx;
    reference
      "RFC 8791: YANG Data Structure Extensions";
  }

  organization
    "IETF OPSAWG (Operations and Management Area Working Group)";
  contact
    "WG Web:   https://datatracker.ietf.org/wg/opsawg/
     WG List:  OPSAWG <mailto:opsawg@ietf.org>

     Editor:   John Evans
               <mailto:john@nopacketleftbehind.net>

     Editor:   Oleksandr Pylypenko
               <mailto:opylypenko@nvidia.com>

     Author:   Jeffrey Haas
               <mailto:jeffrey.haas@hpe.com>

     Author:   Aviran Kadosh
               <mailto:akadosh@cisco.com>

     Editor:   Mohamed Boucadair
               <mailto:mohamed.boucadair@orange.com>";
  description
    "This module defines an information model for packet discard
     reporting.

     Copyright (c) 2026 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Revised BSD License
     set forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     All revisions of IETF and IANA published modules can be found
     at the YANG Parameters registry group
     (https://www.iana.org/assignments/yang-parameters).

     This version of this YANG module is part of RFC XXXX; see
     the RFC itself for full legal notices.";

  revision 2026-03-03 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: Information and Data Models for Packet Discard
                 Reporting";
  }

  /*
   * Main structure definition
   */

  sx:structure packet-discard-reporting {
    description
      "Specifies the abstract structure of packet discard
       reporting data.";
    container control-plane {
      if-feature "pdr-common:control-plane-stats";
      description
        "Control plane packet counters.";
      uses pdr-common:control-plane;
    }
    list interface {
      if-feature "pdr-common:interface-stats";
      key "name";
      description
        "Indicates a list of interfaces for which packet
         discard reporting data is provided.";
      leaf name {
        type string;
        description
          "Indicates the name of the interface.";
      }
      uses pdr-common:interface;
    }
    list flow {
      if-feature "pdr-common:flow-reporting";
      key "direction";
      description
        "Flow packet counters.";
      leaf direction {
        type identityref {
          base pdr-common:direction;
        }
        description
          "Specifies a direction.";
      }
      uses pdr-common:traffic-and-discards;
    }
    container device {
      if-feature "pdr-common:device-stats";
      description
        "Device level packet counters.";
      uses pdr-common:traffic-and-discards;
    }
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="datamodel">
      <name>Data Model (DM)</name>
      <t>This DM implements the IM defined in <xref target="infomodel"/> for the interface, device, and control-plane components. It is a device model per <xref section="2.1" sectionFormat="of" target="RFC8969"/>. Specifically, it is a device-local (network element) operational state model: counters are scoped to a single device (interfaces and control plane).</t>
      <t>The IM defines the abstract classification tree using YANG data structure extensions <xref target="RFC8791"/>. The reusable groupings are defined in the "ietf-packet-discard-reporting-common" module (<xref target="common-module"/>). This DM imports that common module and reuses the same hierarchy of components, directions, layers, and discard classes, attaching the groupings via augment statements to existing YANG modules for routing, interfaces, and logical network elements. The flow component is defined only in the IM for use by flow-oriented data models and is not instantiated in this DM.</t>
      <section anchor="datamodel-structure">
        <name>Structure</name>
        <t>There is a direct mapping between the IM components and their DM implementations, with each component in the hierarchy represented by corresponding YANG containers and leaf data nodes. The abstract tree is shown in <xref target="tree-dm-abstract"/>.</t>
        <figure anchor="tree-dm-abstract">
          <name>Abstract DM Tree Structure</name>
          <artwork><![CDATA[
module: ietf-packet-discard-reporting

  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol:
    +--ro traffic-discard-stats {pdr-common:control-plane-stats}?
       +--ro discard-order-capability*   identityref
       +--ro traffic* [direction]
       |  ...
       +--ro discards* [direction]
          ...
  augment /if:interfaces/if:interface/if:statistics:
    +--ro traffic-discard-stats {pdr-common:interface-stats}?
       +--ro discard-order-capability*   identityref
       +--ro traffic* [direction]
       |  +--ro direction    identityref
       |  +--ro l2
       |  |  ...
       |  +--ro l3
       |  |  ...
       |  +--ro qos!
       |     +--ro class* [id]
       |        ...
       +--ro discards* [direction]
          +--ro direction    identityref
          +--ro l2
          |  ...
          +--ro l3
          |  ...
          +--ro errors
          |  +--ro l2
          |  |  ...
          |  +--ro l3
          |  |  ...
          |  +--ro internal
          |     ...
          +--ro policy
          |  +--ro l2
          |  |  ...
          |  +--ro l3
          |     ...
          +--ro no-buffer
             +--ro qos!
                +--ro class* [id]
                   |  ...
                   +--ro discard-type* [type]
                      ...
  augment /lne:logical-network-elements/lne:logical-network-element:
    +--ro traffic-discard-stats {pdr-common:device-stats}?
       +--ro discard-order-capability*   identityref
       +--ro traffic
       |  +--ro l2
       |  |  ...
       |  +--ro l3
       |  |  ...
       |  +--ro qos!
       |     +--ro class* [id]
       |        ...
       +--ro discards
          +--ro l2
          |  ...
          +--ro l3
          |  ...
          +--ro errors
          |  +--ro l2
          |  |  ...
          |  +--ro l3
          |  |  ...
          |  +--ro internal
          |     ...
          +--ro policy
          |  +--ro l2
          |  |  ...
          |  +--ro l3
          |     ...
          +--ro no-buffer
             +--ro qos!
                +--ro class* [id]
                   |  ...
                   +--ro discard-type* [type]
                      ...
]]></artwork>
        </figure>
        <t>The full tree structure is provided in <xref target="sec-dm-full-tree"/>.</t>
      </section>
      <section anchor="requirements">
        <name>Implementation Requirements</name>
        <t>The following requirements apply to the implementation of the DM and are intended to ensure consistent implementation across different vendors and platforms while allowing for platform-specific optimisations where needed.</t>
        <t>Requirements 1-13 relate to packets forwarded or discarded by the device, while requirement 14 relates to packets destined for or originating from the device, and requirements 15 and 16 relate to feature support:</t>
        <ol spacing="normal" type="1"><li>
            <t>All instances of Layer 2 frame or Layer 3 packet receipt, transmission, and discards <bcp14>MUST</bcp14> be accounted for. A frame or packet <bcp14>MUST</bcp14> be counted as discarded only by the device that discards it, i.e., when the device makes the final determination not to forward or locally deliver it. Handing a packet to another processing path within the device (e.g., punting it to the control plane) is not a discard; if the packet is subsequently dropped, it <bcp14>MUST</bcp14> be accounted for in the class corresponding to where that drop occurs (see requirement 14).</t>
          </li>
          <li>
            <t>All instances of Layer 2 frame or Layer 3 packet receipt, transmission, and discards <bcp14>SHOULD</bcp14> be attributed to the physical or logical interface of the device where they occur.  Where they cannot be attributed to the interface, they <bcp14>MUST</bcp14> be attributed to the device.</t>
          </li>
          <li>
            <t>An individual frame <bcp14>MUST</bcp14> only be accounted for by either the Layer 2 traffic class or the Layer 2 discard classes within a single direction or context, i.e., ingress or egress or device.  This is to avoid double counting.</t>
          </li>
          <li>
            <t>An individual packet <bcp14>MUST</bcp14> only be accounted for by either the Layer 3 traffic class or the Layer 3 discard classes within a single direction or context, i.e., ingress or egress or device.  This is to avoid double counting.</t>
          </li>
          <li>
            <t>A frame discard accounted for at Layer 2 <bcp14>MUST NOT</bcp14> be accounted for at Layer 3 and vice versa. This is to avoid double counting.</t>
          </li>
          <li>
            <t>The aggregate Layer 2 and Layer 3 traffic and discard classes <bcp14>SHOULD</bcp14> account for all underlying frames or packets received, transmitted, and discarded across all other classes. There might be exceptions when distinct discontinuity times are observed for more granular discards.</t>
          </li>
          <li>
            <t>The aggregate QoS traffic and no-buffer discard classes <bcp14>MUST</bcp14> account for all underlying packets received, transmitted, and discarded across all other classes. All packets and bytes reported under <tt>discard-type</tt> <bcp14>MUST</bcp14> also be included in the enclosing <tt>class</tt> aggregate.</t>
          </li>
          <li>
            <t>In addition to the Layer 2 and Layer 3 aggregate classes, an individual discarded packet <bcp14>MUST</bcp14> only account against a single error, policy, or no-buffer discard subclass. When per-type counters are reported, the discard <bcp14>MUST</bcp14> be counted in at most one discard-type entry.</t>
          </li>
          <li>
            <t>When there are multiple reasons for discarding a packet, the ordering of discard class reporting <bcp14>MUST</bcp14> be unambiguously characterised. Implementations <bcp14>SHOULD</bcp14> expose this ordering by means of <tt>discard-order-capability</tt> and <bcp14>MAY</bcp14> use another mechanism (e.g., due to implementation constraints), provided the ordering is documented.</t>
          </li>
          <li>
            <t><tt>class[id]</tt> represents the QoS class assigned to a packet by the forwarding implementation using Diffserv <xref target="RFC2475"/>, IEEE 802.1Q PCP <xref target="IEEE802.1Q"/>, MPLS TC <xref target="RFC5462"/>, or another mechanism. If no QoS classification is used, no-buffer discards <bcp14>MUST</bcp14> be reported as <tt>class[id="0"]</tt>, which represents the default class.</t>
          </li>
          <li>
            <t>When traffic is mirrored, the discard metrics <bcp14>MUST</bcp14> account for the original traffic rather than the reflected traffic.</t>
          </li>
          <li>
            <t>Congestion-related discards can be realised differently with different queueing and memory architectures. Whether a no-buffer discard is attributed to ingress or egress can differ accordingly. For successful auto-mitigation, discards due to egress interface congestion <bcp14>MUST</bcp14> be reportable on <tt>egress</tt>, while discards due to device-level congestion (e.g., due to exceeding the device forwarding rate) <bcp14>MUST</bcp14> be reportable on <tt>ingress</tt>.</t>
          </li>
          <li>
            <t>When the ingress and egress headers differ (for example, at a tunnel endpoint), the discard class attribution <bcp14>MUST</bcp14> relate to the outer header at the point of discard.</t>
          </li>
          <li>
            <t>Traffic to the device control plane (to-CPU) has its own class. However, traffic from the device control plane (from-CPU) <bcp14>MUST</bcp14> be accounted for in the same way as other egress traffic.</t>
          </li>
          <li>
            <t>Implementations <bcp14>MAY</bcp14> support a subset of the defined features based on device capabilities and operational requirements. Which features an implementation supports is discoverable from the device itself: support for each feature is advertised via the YANG library <xref target="RFC8525"/>.</t>
          </li>
          <li>
            <t>Where an implementation supports a feature but does not populate every counter within it, the implementation <bcp14>SHOULD</bcp14> expose which counters are populated. It may do so in documentation or via programatic means (e.g., local help command).</t>
          </li>
        </ol>
      </section>
      <section anchor="examples">
        <name>Usage Examples</name>
        <t>This section assumes that no class of service is implemented.</t>
        <t>If all of the requirements listed in <xref target="requirements"/> are met, a "good" unicast IPv4 packet received would increment:</t>
        <ul spacing="normal">
          <li>
            <t><tt>interface/traffic[direction="ingress"]/l3/address-family-stat[address-family="ipv4"]/unicast/packets</tt></t>
          </li>
          <li>
            <t><tt>interface/traffic[direction="ingress"]/l3/address-family-stat[address-family="ipv4"]/unicast/bytes</tt></t>
          </li>
          <li>
            <t><tt>interface/traffic[direction="ingress"]/qos/class[id="0"]/packets</tt></t>
          </li>
          <li>
            <t><tt>interface/traffic[direction="ingress"]/qos/class[id="0"]/bytes</tt></t>
          </li>
        </ul>
        <t>A received unicast IPv6 packet discarded due to Hop Limit expiry would increment:</t>
        <ul spacing="normal">
          <li>
            <t><tt>interface/discards[direction="ingress"]/l3/address-family-stat[address-family="ipv6"]/unicast/packets</tt></t>
          </li>
          <li>
            <t><tt>interface/discards[direction="ingress"]/l3/address-family-stat[address-family="ipv6"]/unicast/bytes</tt></t>
          </li>
          <li>
            <t><tt>interface/discards[direction="ingress"]/errors/l3/ttl-expired</tt></t>
          </li>
        </ul>
        <t>An IPv4 packet discarded on egress by tail drop due to buffer exhaustion would increment:</t>
        <ul spacing="normal">
          <li>
            <t><tt>interface/discards[direction="egress"]/l3/address-family-stat[address-family="ipv4"]/unicast/packets</tt></t>
          </li>
          <li>
            <t><tt>interface/discards[direction="egress"]/l3/address-family-stat[address-family="ipv4"]/unicast/bytes</tt></t>
          </li>
          <li>
            <t><tt>interface/discards[direction="egress"]/no-buffer/qos/class[id="0"]/packets</tt></t>
          </li>
          <li>
            <t><tt>interface/discards[direction="egress"]/no-buffer/qos/class[id="0"]/bytes</tt></t>
          </li>
        </ul>
        <t>If per-type counters are reported, the packet would also increment:</t>
        <ul spacing="normal">
          <li>
            <t><tt>interface/discards[direction="egress"]/no-buffer/qos/class[id="0"]/discard-type[type="tail-drop"]/packets</tt></t>
          </li>
          <li>
            <t><tt>interface/discards[direction="egress"]/no-buffer/qos/class[id="0"]/discard-type[type="tail-drop"]/bytes</tt></t>
          </li>
        </ul>
        <t>A multicast IPv6 packet dropped due to RPF check failure would increment:</t>
        <ul spacing="normal">
          <li>
            <t><tt>interface/discards[direction="ingress"]/l3/address-family-stat[address-family="ipv6"]/multicast/packets</tt></t>
          </li>
          <li>
            <t><tt>interface/discards[direction="ingress"]/l3/address-family-stat[address-family="ipv6"]/multicast/bytes</tt></t>
          </li>
          <li>
            <t><tt>interface/discards[direction="ingress"]/policy/l3/rpf</tt></t>
          </li>
        </ul>
        <t>A "good" Layer 2 frame received would increment:</t>
        <ul spacing="normal">
          <li>
            <t><tt>interface/traffic[direction="ingress"]/l2/frames</tt></t>
          </li>
          <li>
            <t><tt>interface/traffic[direction="ingress"]/l2/bytes</tt></t>
          </li>
          <li>
            <t><tt>interface/traffic[direction="ingress"]/qos/class[id="0"]/packets</tt></t>
          </li>
          <li>
            <t><tt>interface/traffic[direction="ingress"]/qos/class[id="0"]/bytes</tt></t>
          </li>
        </ul>
      </section>
      <section anchor="datamodel-module">
        <name>"ietf-packet-discard-reporting" YANG Module</name>
        <t>The "ietf-packet-discard-reporting" module imports "ietf-packet-discard-reporting-common" (<xref target="common-module"/>), "ietf-netconf-acm" <xref target="RFC8341"/>, "ietf-interfaces" <xref target="RFC8343"/>, "ietf-routing" <xref target="RFC8349"/>, and "ietf-logical-network-element" <xref target="RFC8530"/>.</t>
        <sourcecode markers="true" name="ietf-packet-discard-reporting@2026-03-03.yang"><![CDATA[
module ietf-packet-discard-reporting {
  yang-version 1.1;
  namespace
    "urn:ietf:params:xml:ns:yang:ietf-packet-discard-reporting";
  prefix pdr;

  import ietf-packet-discard-reporting-common {
    prefix pdr-common;
    reference
      "RFC XXXX: Information and Data Models for Packet Discard
                 Reporting";
  }
  import ietf-netconf-acm {
    prefix nacm;
    reference
      "RFC 8341: Network Configuration Access Control Model";
  }
  import ietf-interfaces {
    prefix if;
    reference
      "RFC 8343: A YANG Data Model for Interface Management";
  }
  import ietf-routing {
    prefix rt;
    reference
      "RFC 8349: A YANG Data Model for Routing Management
                 (NMDA Version)";
  }
  import ietf-logical-network-element {
    prefix lne;
    reference
      "RFC 8530: YANG Model for Logical Network Elements";
  }

  organization
    "IETF OPSAWG (Operations and Management Area Working Group)";
  contact
    "WG Web:   https://datatracker.ietf.org/wg/opsawg/
     WG List:  OPSAWG <mailto:opsawg@ietf.org>

     Editor:   John Evans
               <mailto:john@nopacketleftbehind.net>

     Editor:   Oleksandr Pylypenko
               <mailto:opylypenko@nvidia.com>

     Author:   Jeffrey Haas
               <mailto:jeffrey.haas@hpe.com>

     Author:   Aviran Kadosh
               <mailto:akadosh@cisco.com>

     Editor:   Mohamed Boucadair
               <mailto:mohamed.boucadair@orange.com>";
  description
    "This module defines a data model for packet discard reporting.

     Copyright (c) 2026 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Revised BSD License
     set forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     All revisions of IETF and IANA published modules can be found
     at the YANG Parameters registry group
     (https://www.iana.org/assignments/yang-parameters).

     This version of this YANG module is part of RFC XXXX; see the
     RFC itself for full legal notices.";

  revision 2026-03-03 {
    description
      "Initial revision.";
    reference
      "RFC XXXX: Information and Data Models for Packet Discard
                 Reporting";
  }

  /*
   * Identities
   */

  identity discard-class {
    description
      "Base identity to identify the discard class.";
  }

  identity layer2 {
    base discard-class;
    description
      "Indicates a Layer 2 discard.";
  }

  identity layer3 {
    base discard-class;
    description
      "Indicates a Layer 3 discard.";
  }

  identity internal {
    base discard-class;
    description
      "Indicates an internal discard.";
  }

  identity policy {
    base discard-class;
    description
      "Indicates a discard due to a policy.";
  }

  identity no-buffer {
    base discard-class;
    description
      "Indicates a congestion-related discard.";
  }

  /*
   * Groupings
   */

  grouping discard-order-policy {
    description
      "Defines the implementation-specific precedence of discard
       classes when multiple discard reasons apply to a single
       packet.

       The list is ordered from highest to lowest precedence.";

    leaf-list discard-order-capability {
      type identityref {
        base discard-class;
      }
      description
        "The discard class identity that has this precedence.";
    }
  }

  /*
   * Main structure definition
   */

  augment "/rt:routing/rt:control-plane-protocols"
        + "/rt:control-plane-protocol" {
    if-feature "pdr-common:control-plane-stats";
    description
      "Adds control plane discard counters.";
    container traffic-discard-stats {
      nacm:default-deny-all;
      config false;
      description
        "Traffic and discard counters for the control plane.";
      uses discard-order-policy;
      uses pdr-common:control-plane;
    }
  }
  augment "/if:interfaces/if:interface/if:statistics" {
    if-feature "pdr-common:interface-stats";
    description
      "Adds traffic and discard reporting to the interface
       statistics.";

    container traffic-discard-stats {
      nacm:default-deny-all;
      config false;
      description
        "Traffic and discard counters for the interface.";
      uses discard-order-policy;
      uses pdr-common:interface;
    }
  }
  augment "/lne:logical-network-elements"
        + "/lne:logical-network-element" {
    if-feature "pdr-common:device-stats";
    description
      "Adds device level traffic and discard counters.";

    container traffic-discard-stats {
      nacm:default-deny-all;
      config false;
      description
        "Traffic and discard counters for the logical network
         element.";
      uses discard-order-policy;
      uses pdr-common:traffic-and-discards;
    }
  }
}
]]></sourcecode>
      </section>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <section anchor="intent">
        <name>Determining Operator Intent</name>
        <t>Device discard counters do not by themselves establish operator intent. The classification defined in this document identifies the discard condition. Whether that condition is intended or unintended is determined by the operator using the discard class together with local policy, configured intent, baseline behaviour, duration, affected scope, service context, and other operational evidence.</t>
        <t>Some discard classes provide a strong signal on their own. For example, errors/l2/rx above baseline will generally indicate unintended loss, since it reports errored received frames. Similarly, TTL-expired packets may be expected at a low baseline rate due to traceroute or other diagnostic activity, while a sustained increase above baseline may indicate a convergence issue, a persistent routing loop, or another operational fault.</t>
        <t>Congestion-related loss depends on operator context. A level of no-buffer discards below a defined traffic performance indicator (captured in an SLA, typically) may be expected or intended. The same discard class above a performance indicator, sustained for longer than expected, may be unintended and thus require action. For example, congestion-related discards of best-effort traffic are reported under <tt>interface/discards[direction="egress"]/no-buffer/qos/class[id]</tt>, where <tt>class[id]</tt> identifies the best-effort class. Such discards may be determined to be intended if the loss rate over the measurement interval is below the operator's SLA, and unintended if it is above the SLA (see cases B1 and B2 in <xref target="mapping"/>). Similarly, for Lower Effort (LE) <xref target="RFC8622"/> traffic, a higher loss rate during periods of high utilisation may be acceptable or intended, subject to the operator's service policy. When available, <tt>discard-type</tt> counters allow operators to apply different baselines to AQM and tail-drop discards.</t>
        <t>Policy discards may also require additional context. Discards reported under policy (for example, ACL or policer discards) indicate only that traffic matched a configured rule. If a configured policer discards traffic because the offered load exceeds a provisioned service profile, that may be considered an intended discard, reported under <tt>policy/l3/policer</tt>. For example, Expedited Forwarding (EF) <xref target="RFC3246"/> traffic in excess of its provisioned profile may be intentionally discarded by a policer, although sustained policer discards may still indicate overload of the provisioned service. Policy discards may nonetheless be unintended if the configuration is in error. Determining intent for policy discards requires operator-local context. Operators should verify the configuration enforced in underlying nodes and continuously ensure that the configuration is consistent with the intended service.</t>
      </section>
      <section anchor="experience">
        <name>Deployment Experience</name>
        <t>This section captures practical insights gained from implementing the model across multiple vendors' platforms, as guidance for future implementers and operators:</t>
        <ol spacing="normal" type="1"><li>
            <t>Platforms often account for the number of packets discarded where the TTL has expired (or IPv6 Hop Limit exceeded), and the device CPU has returned an ICMP Time Exceeded message <xref target="RFC4884"/>. However, there is typically a policer applied to limit the number of packets sent to the device CPU, which implicitly limits the rate of TTL discards that are processed.  One method to account for all packet discards due to TTL expiry, even those that are dropped by a policer when being forwarded to the CPU, is to use accounting of all ingress packets received with TTL=1 as a proxy measure.</t>
          </li>
          <li>
            <t>Where no route discards are implemented with a default null route, separate discard accounting is required for any explicit null routes configured in order to differentiate between <tt>interface/discards[direction="ingress"]/policy/l3/null-route</tt> and <tt>interface/discards[direction="ingress"]/errors/l3/no-route</tt>.</t>
          </li>
          <li>
            <t>It is useful to account separately for transit packets discarded by ACLs or policers, and packets discarded by ACLs or policers which limit the number of packets to the device control plane.</t>
          </li>
          <li>
            <t>It is not possible to identify a configuration error (e.g., when
intended discards are unintended) with device discard metrics alone.  For
example, additional context is needed to determine if ACL discards are
intended or due to a misconfigured ACL (i.e., with configuration validation
before deployment or by detecting a significant change in ACL discards after
a configuration change compared to before).</t>
          </li>
          <li>
            <t>Aggregate counters need to be able to deal with the possibility of discontinuities in the underlying counters.</t>
          </li>
          <li>
            <t>While the classification tree is seven levels deep, a minimal implementation may only implement the top six.</t>
          </li>
        </ol>
      </section>
      <section anchor="anchoring-flow-structure">
        <name>Anchoring Flow Structure</name>
        <t>The flow component is included in the IM so that flow-level discard classification is aligned with the device- and interface-level classification, enabling correlation between flow records and device or interface discard counters. The characterisation of a flow depends on the underlying data model that adheres to the IM. From that standpoint, the IM does not make an assumption about flow characterisation and identification. Future flow-oriented data models <bcp14>MUST</bcp14> ensure that the flow structure is anchored so that the discards are unambiguously associated with a flow.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>Note to RFC Editor: This section is to be removed before publication as an RFC.</t>
      <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 RFC 7942.  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>
      <section anchor="information-model-implementations">
        <name>Information Model Implementations</name>
        <t>The IM defined in <xref target="infomodel"/> has been implemented or mapped on at least nine hardware platforms across four vendors, including:</t>
        <ul spacing="normal">
          <li>
            <t>Broadcom: Trident, Tomahawk 1, Tomahawk 3, Tomahawk 5</t>
          </li>
          <li>
            <t>Cisco: Q200L</t>
          </li>
          <li>
            <t>Juniper: MX, PTX, QFX</t>
          </li>
          <li>
            <t>Marvell: TL7</t>
          </li>
        </ul>
      </section>
      <section anchor="data-model-implementations">
        <name>Data Model Implementations</name>
        <t>A YANG-compliant open-source SLAX script implements a subset of the DM defined in <xref target="datamodel"/> for Juniper MX routers.  This implementation is available at:</t>
        <ul spacing="normal">
          <li>
            <t><eref target="https://github.com/o-pylypenko-aws/draft-ietf-opsawg-discardmodel-sample/">https://github.com/o-pylypenko-aws/draft-ietf-opsawg-discardmodel-sample/</eref></t>
          </li>
        </ul>
        <t>Practical observations from these implementations are reflected in <xref target="experience"/>.</t>
      </section>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <section anchor="security-infomodel">
        <name>Information Model</name>
        <t>The IM defined in <xref target="infomodel-module"/> specifies a YANG module using <xref target="RFC8791"/> data extensions. As such, there are no additional security issues related to the YANG module that need to be considered.</t>
        <t>The "ietf-packet-discard-reporting-common" YANG module defines a set of identities, types, and
   groupings. These nodes are intended to be reused by other YANG
   modules. The module by itself does not expose any data nodes that
   are writable, data nodes that contain read-only state, or RPCs.
   As such, there are no additional security issues related to
   the YANG module that need to be considered.</t>
        <t>Modules that use the groupings that are defined in the "ietf-packet-discard-reporting-common" module
   should identify the corresponding security considerations.</t>
      </section>
      <section anchor="security-datamodel">
        <name>Data Model</name>
        <t>This section is modelled after the template described in <xref section="3.7.1" sectionFormat="of" target="RFC9907"/>.</t>
        <t>The YANG module specified in <xref target="datamodel-module"/> defines a data model that is designed to be accessed via YANG-based management protocols, such as Network Configuration Protocol (NETCONF) <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These YANG-based management protocols (1) have to use a secure transport layer (e.g., Secure Shell (SSH) <xref target="RFC4252"/>, TLS <xref target="RFC9846"/>, and QUIC <xref target="RFC9000"/>) and (2) have to use mutual authentication.</t>
        <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/> provides the means to restrict access for particular NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content.</t>
        <t>There are no particularly sensitive writable data nodes.</t>
        <t>Some of the readable data nodes in this YANG module may be considered sensitive or vulnerable in some network environments.  It is thus important to control read access (e.g., via get, get-config, or notification) to these data nodes. Specifically, the following subtrees and data nodes have particular sensitivities/vulnerabilities:</t>
        <dl>
          <dt>rt:control-plane-protocol/pdr:traffic-discard-stats, if:statistics/pdr:traffic-discard-stats, and lne:logical-network-element/pdr:traffic-discard-stats:</dt>
          <dd>
            <t>Access to these data nodes would reveal information about the attacks to which an element is subject, misconfigurations, etc.</t>
          </dd>
          <dt/>
          <dd>
            <t>Also, an attacker who can inject packets can infer the efficiency of their attack by monitoring (the increase of) some discard counters (e.g., policy) and adjust their attack strategy accordingly.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>IANA is requested to register the following URIs in the "ns" registry within the "IETF XML Registry" group <xref target="RFC3688"/>:</t>
      <artwork><![CDATA[
   URI:
     urn:ietf:params:xml:ns:yang:ietf-packet-discard-reporting-common
   Registrant Contact:  The IESG.
   XML:  N/A; the requested URI is an XML namespace.

   URI:  urn:ietf:params:xml:ns:yang:ietf-packet-discard-reporting-sx
   Registrant Contact:  The IESG.
   XML:  N/A; the requested URI is an XML namespace.

   URI:  urn:ietf:params:xml:ns:yang:ietf-packet-discard-reporting
   Registrant Contact:  The IESG.
   XML:  N/A; the requested URI is an XML namespace.
]]></artwork>
      <t>IANA is requested to register the following YANG modules in the "YANG
   Module Names" registry <xref target="RFC6020"/> within the "YANG Parameters" registry group:</t>
      <artwork><![CDATA[
   Name:  ietf-packet-discard-reporting-common
   Maintained by IANA?  N
   Namespace:
     urn:ietf:params:xml:ns:yang:ietf-packet-discard-reporting-common
   Prefix:  pdr-common
   Reference:  RFC XXXX

   Name:  ietf-packet-discard-reporting-sx
   Maintained by IANA?  N
   Namespace:
     urn:ietf:params:xml:ns:yang:ietf-packet-discard-reporting-sx
   Prefix:  pdr-sx
   Reference:  RFC XXXX

   Name:  ietf-packet-discard-reporting
   Maintained by IANA?  N
   Namespace:  urn:ietf:params:xml:ns:yang:ietf-packet-discard-reporting
   Prefix:  pdr
   Reference:  RFC XXXX
]]></artwork>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="IEEE802.1Q" target="https://doi.org/10.1109/IEEESTD.2022.10004498">
          <front>
            <title>IEEE Standard for Local and Metropolitan Area Networks--Bridges and Bridged Networks</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date year="2022" month="December" day="22"/>
          </front>
          <seriesInfo name="IEEE" value="Std 802.1Q-2022"/>
          <seriesInfo name="DOI" value="10.1109/IEEESTD.2022.10004498"/>
        </reference>
        <reference anchor="RFC8343">
          <front>
            <title>A YANG Data Model for Interface Management</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model for the management of network interfaces. It is expected that interface-type-specific data models augment the generic interfaces data model defined in this document. The data model includes definitions for configuration and system state (status information and counters for the collection of statistics).</t>
              <t>The YANG data model in this document conforms to the Network Management Datastore Architecture (NMDA) defined in RFC 8342.</t>
              <t>This document obsoletes RFC 7223.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8343"/>
          <seriesInfo name="DOI" value="10.17487/RFC8343"/>
        </reference>
        <reference anchor="RFC3031">
          <front>
            <title>Multiprotocol Label Switching Architecture</title>
            <author fullname="E. Rosen" initials="E." surname="Rosen"/>
            <author fullname="A. Viswanathan" initials="A." surname="Viswanathan"/>
            <author fullname="R. Callon" initials="R." surname="Callon"/>
            <date month="January" year="2001"/>
            <abstract>
              <t>This document specifies the architecture for Multiprotocol Label Switching (MPLS). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3031"/>
          <seriesInfo name="DOI" value="10.17487/RFC3031"/>
        </reference>
        <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="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>
        <reference anchor="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols. This document describes the syntax and semantics of version 1.1 of the YANG language. YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification. There are a small number of backward incompatibilities from YANG version 1. This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC8791">
          <front>
            <title>YANG Data Structure Extensions</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Björklund" initials="M." surname="Björklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>This document describes YANG mechanisms for defining abstract data structures with YANG.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8791"/>
          <seriesInfo name="DOI" value="10.17487/RFC8791"/>
        </reference>
        <reference anchor="RFC791">
          <front>
            <title>Internet Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="September" year="1981"/>
          </front>
          <seriesInfo name="STD" value="5"/>
          <seriesInfo name="RFC" value="791"/>
          <seriesInfo name="DOI" value="10.17487/RFC791"/>
        </reference>
        <reference anchor="RFC8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </reference>
        <reference anchor="RFC826">
          <front>
            <title>An Ethernet Address Resolution Protocol: Or Converting Network Protocol Addresses to 48.bit Ethernet Address for Transmission on Ethernet Hardware</title>
            <author fullname="D. Plummer" initials="D." surname="Plummer"/>
            <date month="November" year="1982"/>
            <abstract>
              <t>The purpose of this RFC is to present a method of Converting Protocol Addresses (e.g., IP addresses) to Local Network Addresses (e.g., Ethernet addresses). This is an issue of general concern in the ARPA Internet Community at this time. The method proposed here is presented for your consideration and comment. This is not the specification of an Internet Standard.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="37"/>
          <seriesInfo name="RFC" value="826"/>
          <seriesInfo name="DOI" value="10.17487/RFC826"/>
        </reference>
        <reference anchor="RFC4861">
          <front>
            <title>Neighbor Discovery for IP version 6 (IPv6)</title>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <author fullname="H. Soliman" initials="H." surname="Soliman"/>
            <date month="September" year="2007"/>
            <abstract>
              <t>This document specifies the Neighbor Discovery protocol for IP Version 6. IPv6 nodes on the same link use Neighbor Discovery to discover each other's presence, to determine each other's link-layer addresses, to find routers, and to maintain reachability information about the paths to active neighbors. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4861"/>
          <seriesInfo name="DOI" value="10.17487/RFC4861"/>
        </reference>
        <reference anchor="RFC9911">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schönwälder" initials="J." role="editor" surname="Schönwälder"/>
            <date month="December" year="2025"/>
            <abstract>
              <t>This document defines a collection of common data types to be used with the YANG data modeling language. It includes several new type definitions and obsoletes RFC 6991.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9911"/>
          <seriesInfo name="DOI" value="10.17487/RFC9911"/>
        </reference>
        <reference anchor="RFC8402">
          <front>
            <title>Segment Routing Architecture</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="S. Previdi" initials="S." role="editor" surname="Previdi"/>
            <author fullname="L. Ginsberg" initials="L." surname="Ginsberg"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="R. Shakir" initials="R." surname="Shakir"/>
            <date month="July" year="2018"/>
            <abstract>
              <t>Segment Routing (SR) leverages the source routing paradigm. A node steers a packet through an ordered list of instructions, called "segments". A segment can represent any instruction, topological or service based. A segment can have a semantic local to an SR node or global within an SR domain. SR provides a mechanism that allows a flow to be restricted to a specific topological path, while maintaining per-flow state only at the ingress node(s) to the SR domain.</t>
              <t>SR can be directly applied to the MPLS architecture with no change to the forwarding plane. A segment is encoded as an MPLS label. An ordered list of segments is encoded as a stack of labels. The segment to process is on the top of the stack. Upon completion of a segment, the related label is popped from the stack.</t>
              <t>SR can be applied to the IPv6 architecture, with a new type of routing header. A segment is encoded as an IPv6 address. An ordered list of segments is encoded as an ordered list of IPv6 addresses in the routing header. The active segment is indicated by the Destination Address (DA) of the packet. The next active segment is indicated by a pointer in the new routing header.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8402"/>
          <seriesInfo name="DOI" value="10.17487/RFC8402"/>
        </reference>
        <reference anchor="RFC8660">
          <front>
            <title>Segment Routing with the MPLS Data Plane</title>
            <author fullname="A. Bashandy" initials="A." role="editor" surname="Bashandy"/>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="B. Decraene" initials="B." surname="Decraene"/>
            <author fullname="S. Litkowski" initials="S." surname="Litkowski"/>
            <author fullname="R. Shakir" initials="R." surname="Shakir"/>
            <date month="December" year="2019"/>
            <abstract>
              <t>Segment Routing (SR) leverages the source-routing paradigm. A node steers a packet through a controlled set of instructions, called segments, by prepending the packet with an SR header. In the MPLS data plane, the SR header is instantiated through a label stack. This document specifies the forwarding behavior to allow instantiating SR over the MPLS data plane (SR-MPLS).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8660"/>
          <seriesInfo name="DOI" value="10.17487/RFC8660"/>
        </reference>
        <reference anchor="RFC8754">
          <front>
            <title>IPv6 Segment Routing Header (SRH)</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="D. Dukes" initials="D." role="editor" surname="Dukes"/>
            <author fullname="S. Previdi" initials="S." surname="Previdi"/>
            <author fullname="J. Leddy" initials="J." surname="Leddy"/>
            <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
            <author fullname="D. Voyer" initials="D." surname="Voyer"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>Segment Routing can be applied to the IPv6 data plane using a new type of Routing Extension Header called the Segment Routing Header (SRH). This document describes the SRH and how it is used by nodes that are Segment Routing (SR) capable.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8754"/>
          <seriesInfo name="DOI" value="10.17487/RFC8754"/>
        </reference>
        <reference anchor="RFC2475">
          <front>
            <title>An Architecture for Differentiated Services</title>
            <author fullname="S. Blake" initials="S." surname="Blake"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <author fullname="M. Carlson" initials="M." surname="Carlson"/>
            <author fullname="E. Davies" initials="E." surname="Davies"/>
            <author fullname="Z. Wang" initials="Z." surname="Wang"/>
            <author fullname="W. Weiss" initials="W." surname="Weiss"/>
            <date month="December" year="1998"/>
            <abstract>
              <t>This document defines an architecture for implementing scalable service differentiation in the Internet. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2475"/>
          <seriesInfo name="DOI" value="10.17487/RFC2475"/>
        </reference>
        <reference anchor="RFC5462">
          <front>
            <title>Multiprotocol Label Switching (MPLS) Label Stack Entry: "EXP" Field Renamed to "Traffic Class" Field</title>
            <author fullname="L. Andersson" initials="L." surname="Andersson"/>
            <author fullname="R. Asati" initials="R." surname="Asati"/>
            <date month="February" year="2009"/>
            <abstract>
              <t>The early Multiprotocol Label Switching (MPLS) documents defined the form of the MPLS label stack entry. This includes a three-bit field called the "EXP field". The exact use of this field was not defined by these documents, except to state that it was to be "reserved for experimental use".</t>
              <t>Although the intended use of the EXP field was as a "Class of Service" (CoS) field, it was not named a CoS field by these early documents because the use of such a CoS field was not considered to be sufficiently defined. Today a number of standards documents define its usage as a CoS field.</t>
              <t>To avoid misunderstanding about how this field may be used, it has become increasingly necessary to rename this field. This document changes the name of the field to the "Traffic Class field" ("TC field"). In doing so, it also updates documents that define the current use of the EXP field. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5462"/>
          <seriesInfo name="DOI" value="10.17487/RFC5462"/>
        </reference>
        <reference anchor="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires a structured and secure operating environment that promotes human usability and multi-vendor interoperability. There is a need for standard mechanisms to restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This document defines such an access control model.</t>
              <t>This document obsoletes RFC 6536.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="91"/>
          <seriesInfo name="RFC" value="8341"/>
          <seriesInfo name="DOI" value="10.17487/RFC8341"/>
        </reference>
        <reference anchor="RFC8349">
          <front>
            <title>A YANG Data Model for Routing Management (NMDA Version)</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="Y. Qu" initials="Y." surname="Qu"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document specifies three YANG modules and one submodule. Together, they form the core routing data model that serves as a framework for configuring and managing a routing subsystem. It is expected that these modules will be augmented by additional YANG modules defining data models for control-plane protocols, route filters, and other functions. The core routing data model provides common building blocks for such extensions -- routes, Routing Information Bases (RIBs), and control-plane protocols.</t>
              <t>The YANG modules in this document conform to the Network Management Datastore Architecture (NMDA). This document obsoletes RFC 8022.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8349"/>
          <seriesInfo name="DOI" value="10.17487/RFC8349"/>
        </reference>
        <reference anchor="RFC8530">
          <front>
            <title>YANG Model for Logical Network Elements</title>
            <author fullname="L. Berger" initials="L." surname="Berger"/>
            <author fullname="C. Hopps" initials="C." surname="Hopps"/>
            <author fullname="A. Lindem" initials="A." surname="Lindem"/>
            <author fullname="D. Bogdanovic" initials="D." surname="Bogdanovic"/>
            <author fullname="X. Liu" initials="X." surname="Liu"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>This document defines a logical network element (LNE) YANG module that is compliant with the Network Management Datastore Architecture (NMDA). This module can be used to manage the logical resource partitioning that may be present on a network device. Examples of common industry terms for logical resource partitioning are logical systems or logical routers. The YANG model in this document conforms with NMDA as defined in RFC 8342.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8530"/>
          <seriesInfo name="DOI" value="10.17487/RFC8530"/>
        </reference>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RED93" target="https://ieeexplore.ieee.org/document/251892">
          <front>
            <title>Random early detection gateways for congestion avoidance</title>
            <author initials="S." surname="Floyd">
              <organization/>
            </author>
            <author initials="V." surname="Jacobson">
              <organization/>
            </author>
            <date year="1993" month="August"/>
          </front>
        </reference>
        <reference anchor="RFC2863">
          <front>
            <title>The Interfaces Group MIB</title>
            <author fullname="K. McCloghrie" initials="K." surname="McCloghrie"/>
            <author fullname="F. Kastenholz" initials="F." surname="Kastenholz"/>
            <date month="June" year="2000"/>
            <abstract>
              <t>This memo discusses the 'interfaces' group of MIB-II, especially the experience gained from the definition of numerous media-specific MIB modules for use in conjunction with the 'interfaces' group for managing various sub-layers beneath the internetwork-layer. It specifies clarifications to, and extensions of, the architectural issues within the MIB-II model of the 'interfaces' group. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2863"/>
          <seriesInfo name="DOI" value="10.17487/RFC2863"/>
        </reference>
        <reference anchor="RFC7270">
          <front>
            <title>Cisco-Specific Information Elements Reused in IP Flow Information Export (IPFIX)</title>
            <author fullname="A. Yourtchenko" initials="A." surname="Yourtchenko"/>
            <author fullname="P. Aitken" initials="P." surname="Aitken"/>
            <author fullname="B. Claise" initials="B." surname="Claise"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>This document describes some additional IP Flow Information Export (IPFIX) Information Elements in the range of 1-127, which is the range compatible with field types used by NetFlow version 9 in RFC 3954, as specified in the IPFIX Information Model in RFC 7012.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7270"/>
          <seriesInfo name="DOI" value="10.17487/RFC7270"/>
        </reference>
        <reference anchor="RFC7011">
          <front>
            <title>Specification of the IP Flow Information Export (IPFIX) Protocol for the Exchange of Flow Information</title>
            <author fullname="B. Claise" initials="B." role="editor" surname="Claise"/>
            <author fullname="B. Trammell" initials="B." role="editor" surname="Trammell"/>
            <author fullname="P. Aitken" initials="P." surname="Aitken"/>
            <date month="September" year="2013"/>
            <abstract>
              <t>This document specifies the IP Flow Information Export (IPFIX) protocol, which serves as a means for transmitting Traffic Flow information over the network. In order to transmit Traffic Flow information from an Exporting Process to a Collecting Process, a common representation of flow data and a standard means of communicating them are required. This document describes how the IPFIX Data and Template Records are carried over a number of transport protocols from an IPFIX Exporting Process to an IPFIX Collecting Process. This document obsoletes RFC 5101.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="77"/>
          <seriesInfo name="RFC" value="7011"/>
          <seriesInfo name="DOI" value="10.17487/RFC7011"/>
        </reference>
        <reference anchor="RFC8340">
          <front>
            <title>YANG Tree Diagrams</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="L. Berger" initials="L." role="editor" surname="Berger"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document captures the current syntax used in YANG module tree diagrams. The purpose of this document is to provide a single location for this definition. This syntax may be updated from time to time based on the evolution of the YANG language.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="215"/>
          <seriesInfo name="RFC" value="8340"/>
          <seriesInfo name="DOI" value="10.17487/RFC8340"/>
        </reference>
        <reference anchor="RFC3444">
          <front>
            <title>On the Difference between Information Models and Data Models</title>
            <author fullname="A. Pras" initials="A." surname="Pras"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <date month="January" year="2003"/>
            <abstract>
              <t>There has been ongoing confusion about the differences between Information Models and Data Models for defining managed objects in network management. This document explains the differences between these terms by analyzing how existing network management model specifications (from the IETF and other bodies such as the International Telecommunication Union (ITU) or the Distributed Management Task Force (DMTF)) fit into the universe of Information Models and Data Models. This memo documents the main results of the 8th workshop of the Network Management Research Group (NMRG) of the Internet Research Task Force (IRTF) hosted by the University of Texas at Austin. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3444"/>
          <seriesInfo name="DOI" value="10.17487/RFC3444"/>
        </reference>
        <reference anchor="RFC2827">
          <front>
            <title>Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing</title>
            <author fullname="P. Ferguson" initials="P." surname="Ferguson"/>
            <author fullname="D. Senie" initials="D." surname="Senie"/>
            <date month="May" year="2000"/>
            <abstract>
              <t>This paper discusses a simple, effective, and straightforward method for using ingress traffic filtering to prohibit DoS (Denial of Service) attacks which use forged IP addresses to be propagated from 'behind' an Internet Service Provider's (ISP) aggregation point. 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="38"/>
          <seriesInfo name="RFC" value="2827"/>
          <seriesInfo name="DOI" value="10.17487/RFC2827"/>
        </reference>
        <reference anchor="RFC3704">
          <front>
            <title>Ingress Filtering for Multihomed Networks</title>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <author fullname="P. Savola" initials="P." surname="Savola"/>
            <date month="March" year="2004"/>
            <abstract>
              <t>BCP 38, RFC 2827, is designed to limit the impact of distributed denial of service attacks, by denying traffic with spoofed addresses access to the network, and to help ensure that traffic is traceable to its correct source network. As a side effect of protecting the Internet against such attacks, the network implementing the solution also protects itself from this and other attacks, such as spoofed management access to networking equipment. There are cases when this may create problems, e.g., with multihoming. This document describes the current ingress filtering operational mechanisms, examines generic issues related to ingress filtering, and delves into the effects on multihoming in particular. This memo updates RFC 2827. 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="84"/>
          <seriesInfo name="RFC" value="3704"/>
          <seriesInfo name="DOI" value="10.17487/RFC3704"/>
        </reference>
        <reference anchor="RFC8704">
          <front>
            <title>Enhanced Feasible-Path Unicast Reverse Path Forwarding</title>
            <author fullname="K. Sriram" initials="K." surname="Sriram"/>
            <author fullname="D. Montgomery" initials="D." surname="Montgomery"/>
            <author fullname="J. Haas" initials="J." surname="Haas"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document identifies a need for and proposes improvement of the unicast Reverse Path Forwarding (uRPF) techniques (see RFC 3704) for detection and mitigation of source address spoofing (see BCP 38). Strict uRPF is inflexible about directionality, the loose uRPF is oblivious to directionality, and the current feasible-path uRPF attempts to strike a balance between the two (see RFC 3704). However, as shown in this document, the existing feasible-path uRPF still has shortcomings. This document describes enhanced feasible-path uRPF (EFP-uRPF) techniques that are more flexible (in a meaningful way) about directionality than the feasible-path uRPF (RFC 3704). The proposed EFP-uRPF methods aim to significantly reduce false positives regarding invalid detection in source address validation (SAV). Hence, they can potentially alleviate ISPs' concerns about the possibility of disrupting service for their customers and encourage greater deployment of uRPF techniques. This document updates RFC 3704.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="84"/>
          <seriesInfo name="RFC" value="8704"/>
          <seriesInfo name="DOI" value="10.17487/RFC8704"/>
        </reference>
        <reference anchor="RFC3882">
          <front>
            <title>Configuring BGP to Block Denial-of-Service Attacks</title>
            <author fullname="D. Turk" initials="D." surname="Turk"/>
            <date month="October" year="2004"/>
            <abstract>
              <t>This document describes an operational technique that uses BGP communities to remotely trigger black-holing of a particular destination network to block denial-of-service attacks. Black-holing can be applied on a selection of routers rather than all BGP-speaking routers in the network. The document also describes a sinkhole tunnel technique using BGP communities and tunnels to pull traffic into a sinkhole router for analysis. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3882"/>
          <seriesInfo name="DOI" value="10.17487/RFC3882"/>
        </reference>
        <reference anchor="RFC5635">
          <front>
            <title>Remote Triggered Black Hole Filtering with Unicast Reverse Path Forwarding (uRPF)</title>
            <author fullname="W. Kumari" initials="W." surname="Kumari"/>
            <author fullname="D. McPherson" initials="D." surname="McPherson"/>
            <date month="August" year="2009"/>
            <abstract>
              <t>Remote Triggered Black Hole (RTBH) filtering is a popular and effective technique for the mitigation of denial-of-service attacks. This document expands upon destination-based RTBH filtering by outlining a method to enable filtering by source address as well. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5635"/>
          <seriesInfo name="DOI" value="10.17487/RFC5635"/>
        </reference>
        <reference anchor="RFC8955">
          <front>
            <title>Dissemination of Flow Specification Rules</title>
            <author fullname="C. Loibl" initials="C." surname="Loibl"/>
            <author fullname="S. Hares" initials="S." surname="Hares"/>
            <author fullname="R. Raszuk" initials="R." surname="Raszuk"/>
            <author fullname="D. McPherson" initials="D." surname="McPherson"/>
            <author fullname="M. Bacher" initials="M." surname="Bacher"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>This document defines a Border Gateway Protocol Network Layer Reachability Information (BGP NLRI) encoding format that can be used to distribute (intra-domain and inter-domain) traffic Flow Specifications for IPv4 unicast and IPv4 BGP/MPLS VPN services. This allows the routing system to propagate information regarding more specific components of the traffic aggregate defined by an IP destination prefix.</t>
              <t>It also specifies BGP Extended Community encoding formats, which can be used to propagate Traffic Filtering Actions along with the Flow Specification NLRI. Those Traffic Filtering Actions encode actions a routing system can take if the packet matches the Flow Specification.</t>
              <t>This document obsoletes both RFC 5575 and RFC 7674.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8955"/>
          <seriesInfo name="DOI" value="10.17487/RFC8955"/>
        </reference>
        <reference anchor="RFC8956">
          <front>
            <title>Dissemination of Flow Specification Rules for IPv6</title>
            <author fullname="C. Loibl" initials="C." role="editor" surname="Loibl"/>
            <author fullname="R. Raszuk" initials="R." role="editor" surname="Raszuk"/>
            <author fullname="S. Hares" initials="S." role="editor" surname="Hares"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>"Dissemination of Flow Specification Rules" (RFC 8955) provides a Border Gateway Protocol (BGP) extension for the propagation of traffic flow information for the purpose of rate limiting or filtering IPv4 protocol data packets.</t>
              <t>This document extends RFC 8955 with IPv6 functionality. It also updates RFC 8955 by changing the IANA Flow Spec Component Types registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8956"/>
          <seriesInfo name="DOI" value="10.17487/RFC8956"/>
        </reference>
        <reference anchor="RFC9117">
          <front>
            <title>Revised Validation Procedure for BGP Flow Specifications</title>
            <author fullname="J. Uttaro" initials="J." surname="Uttaro"/>
            <author fullname="J. Alcaide" initials="J." surname="Alcaide"/>
            <author fullname="C. Filsfils" initials="C." surname="Filsfils"/>
            <author fullname="D. Smith" initials="D." surname="Smith"/>
            <author fullname="P. Mohapatra" initials="P." surname="Mohapatra"/>
            <date month="August" year="2021"/>
            <abstract>
              <t>This document describes a modification to the validation procedure defined for the dissemination of BGP Flow Specifications. The dissemination of BGP Flow Specifications as specified in RFC 8955 requires that the originator of the Flow Specification match the originator of the best-match unicast route for the destination prefix embedded in the Flow Specification. For an Internal Border Gateway Protocol (iBGP) received route, the originator is typically a border router within the same autonomous system (AS). The objective is to allow only BGP speakers within the data forwarding path to originate BGP Flow Specifications. Sometimes it is desirable to originate the BGP Flow Specification from any place within the autonomous system itself, for example, from a centralized BGP route controller. However, the validation procedure described in RFC 8955 will fail in this scenario. The modification proposed herein relaxes the validation rule to enable Flow Specifications to be originated within the same autonomous system as the BGP speaker performing the validation. Additionally, this document revises the AS_PATH validation rules so Flow Specifications received from an External Border Gateway Protocol (eBGP) peer can be validated when such a peer is a BGP route server.</t>
              <t>This document updates the validation procedure in RFC 8955.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9117"/>
          <seriesInfo name="DOI" value="10.17487/RFC9117"/>
        </reference>
        <reference anchor="RFC6192">
          <front>
            <title>Protecting the Router Control Plane</title>
            <author fullname="D. Dugal" initials="D." surname="Dugal"/>
            <author fullname="C. Pignataro" initials="C." surname="Pignataro"/>
            <author fullname="R. Dunn" initials="R." surname="Dunn"/>
            <date month="March" year="2011"/>
            <abstract>
              <t>This memo provides a method for protecting a router's control plane from undesired or malicious traffic. In this approach, all legitimate router control plane traffic is identified. Once legitimate traffic has been identified, a filter is deployed in the router's forwarding plane. That filter prevents traffic not specifically identified as legitimate from reaching the router's control plane, or rate-limits such traffic to an acceptable level.</t>
              <t>Note that the filters described in this memo are applied only to traffic that is destined for the router, and not to all traffic that is passing through the router. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6192"/>
          <seriesInfo name="DOI" value="10.17487/RFC6192"/>
        </reference>
        <reference anchor="RFC5082">
          <front>
            <title>The Generalized TTL Security Mechanism (GTSM)</title>
            <author fullname="V. Gill" initials="V." surname="Gill"/>
            <author fullname="J. Heasley" initials="J." surname="Heasley"/>
            <author fullname="D. Meyer" initials="D." surname="Meyer"/>
            <author fullname="P. Savola" initials="P." role="editor" surname="Savola"/>
            <author fullname="C. Pignataro" initials="C." surname="Pignataro"/>
            <date month="October" year="2007"/>
            <abstract>
              <t>The use of a packet's Time to Live (TTL) (IPv4) or Hop Limit (IPv6) to verify whether the packet was originated by an adjacent node on a connected link has been used in many recent protocols. This document generalizes this technique. This document obsoletes Experimental RFC 3682. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5082"/>
          <seriesInfo name="DOI" value="10.17487/RFC5082"/>
        </reference>
        <reference anchor="RFC8029">
          <front>
            <title>Detecting Multiprotocol Label Switched (MPLS) Data-Plane Failures</title>
            <author fullname="K. Kompella" initials="K." surname="Kompella"/>
            <author fullname="G. Swallow" initials="G." surname="Swallow"/>
            <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
            <author fullname="N. Kumar" initials="N." surname="Kumar"/>
            <author fullname="S. Aldrin" initials="S." surname="Aldrin"/>
            <author fullname="M. Chen" initials="M." surname="Chen"/>
            <date month="March" year="2017"/>
            <abstract>
              <t>This document describes a simple and efficient mechanism to detect data-plane failures in Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs). It defines a probe message called an "MPLS echo request" and a response message called an "MPLS echo reply" for returning the result of the probe. The MPLS echo request is intended to contain sufficient information to check correct operation of the data plane and to verify the data plane against the control plane, thereby localizing faults.</t>
              <t>This document obsoletes RFCs 4379, 6424, 6829, and 7537, and updates RFC 1122.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8029"/>
          <seriesInfo name="DOI" value="10.17487/RFC8029"/>
        </reference>
        <reference anchor="RFC5085">
          <front>
            <title>Pseudowire Virtual Circuit Connectivity Verification (VCCV): A Control Channel for Pseudowires</title>
            <author fullname="T. Nadeau" initials="T." role="editor" surname="Nadeau"/>
            <author fullname="C. Pignataro" initials="C." role="editor" surname="Pignataro"/>
            <date month="December" year="2007"/>
            <abstract>
              <t>This document describes Virtual Circuit Connectivity Verification (VCCV), which provides a control channel that is associated with a pseudowire (PW), as well as the corresponding operations and management functions (such as connectivity verification) to be used over that control channel. VCCV applies to all supported access circuit and transport types currently defined for PWs. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5085"/>
          <seriesInfo name="DOI" value="10.17487/RFC5085"/>
        </reference>
        <reference anchor="RFC8289">
          <front>
            <title>Controlled Delay Active Queue Management</title>
            <author fullname="K. Nichols" initials="K." surname="Nichols"/>
            <author fullname="V. Jacobson" initials="V." surname="Jacobson"/>
            <author fullname="A. McGregor" initials="A." role="editor" surname="McGregor"/>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <date month="January" year="2018"/>
            <abstract>
              <t>This document describes CoDel (Controlled Delay) -- a general framework that controls bufferbloat-generated excess delay in modern networking environments. CoDel consists of an estimator, a setpoint, and a control loop. It requires no configuration in normal Internet deployments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8289"/>
          <seriesInfo name="DOI" value="10.17487/RFC8289"/>
        </reference>
        <reference anchor="RFC8986">
          <front>
            <title>Segment Routing over IPv6 (SRv6) Network Programming</title>
            <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
            <author fullname="P. Camarillo" initials="P." role="editor" surname="Camarillo"/>
            <author fullname="J. Leddy" initials="J." surname="Leddy"/>
            <author fullname="D. Voyer" initials="D." surname="Voyer"/>
            <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
            <author fullname="Z. Li" initials="Z." surname="Li"/>
            <date month="February" year="2021"/>
            <abstract>
              <t>The Segment Routing over IPv6 (SRv6) Network Programming framework enables a network operator or an application to specify a packet processing program by encoding a sequence of instructions in the IPv6 packet header.</t>
              <t>Each instruction is implemented on one or several nodes in the network and identified by an SRv6 Segment Identifier in the packet.</t>
              <t>This document defines the SRv6 Network Programming concept and specifies the base set of SRv6 behaviors that enables the creation of interoperable overlays with underlay optimization.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8986"/>
          <seriesInfo name="DOI" value="10.17487/RFC8986"/>
        </reference>
        <reference anchor="RFC8969">
          <front>
            <title>A Framework for Automating Service and Network Management with YANG</title>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="D. Lopez" initials="D." surname="Lopez"/>
            <author fullname="C. Xie" initials="C." surname="Xie"/>
            <author fullname="L. Geng" initials="L." surname="Geng"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>Data models provide a programmatic approach to represent services and networks. Concretely, they can be used to derive configuration information for network and service components, and state information that will be monitored and tracked. Data models can be used during the service and network management life cycle (e.g., service instantiation, service provisioning, service optimization, service monitoring, service diagnosing, and service assurance). Data models are also instrumental in the automation of network management, and they can provide closed-loop control for adaptive and deterministic service creation, delivery, and maintenance.</t>
              <t>This document describes a framework for service and network management automation that takes advantage of YANG modeling technologies. This framework is drawn from a network operator perspective irrespective of the origin of a data model; thus, it can accommodate YANG modules that are developed outside the IETF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8969"/>
          <seriesInfo name="DOI" value="10.17487/RFC8969"/>
        </reference>
        <reference anchor="RFC8525">
          <front>
            <title>YANG Library</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>This document describes a YANG library that provides information about the YANG modules, datastores, and datastore schemas used by a network management server. Simple caching mechanisms are provided to allow clients to minimize retrieval of this information. This version of the YANG library supports the Network Management Datastore Architecture (NMDA) by listing all datastores supported by a network management server and the schema that is used by each of these datastores.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8525"/>
          <seriesInfo name="DOI" value="10.17487/RFC8525"/>
        </reference>
        <reference anchor="RFC8622">
          <front>
            <title>A Lower-Effort Per-Hop Behavior (LE PHB) for Differentiated Services</title>
            <author fullname="R. Bless" initials="R." surname="Bless"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document specifies properties and characteristics of a Lower- Effort Per-Hop Behavior (LE PHB). The primary objective of this LE PHB is to protect Best-Effort (BE) traffic (packets forwarded with the default PHB) from LE traffic in congestion situations, i.e., when resources become scarce, BE traffic has precedence over LE traffic and may preempt it. Alternatively, packets forwarded by the LE PHB can be associated with a scavenger service class, i.e., they scavenge otherwise-unused resources only. There are numerous uses for this PHB, e.g., for background traffic of low precedence, such as bulk data transfers with low priority in time, non-time-critical backups, larger software updates, web search engines while gathering information from web servers and so on. This document recommends a standard Differentiated Services Code Point (DSCP) value for the LE PHB.</t>
              <t>This specification obsoletes RFC 3662 and updates the DSCP recommended in RFCs 4594 and 8325 to use the DSCP assigned in this specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8622"/>
          <seriesInfo name="DOI" value="10.17487/RFC8622"/>
        </reference>
        <reference anchor="RFC3246">
          <front>
            <title>An Expedited Forwarding PHB (Per-Hop Behavior)</title>
            <author fullname="B. Davie" initials="B." surname="Davie"/>
            <author fullname="A. Charny" initials="A." surname="Charny"/>
            <author fullname="J.C.R. Bennet" initials="J.C.R." surname="Bennet"/>
            <author fullname="K. Benson" initials="K." surname="Benson"/>
            <author fullname="J.Y. Le Boudec" initials="J.Y." surname="Le Boudec"/>
            <author fullname="W. Courtney" initials="W." surname="Courtney"/>
            <author fullname="S. Davari" initials="S." surname="Davari"/>
            <author fullname="V. Firoiu" initials="V." surname="Firoiu"/>
            <author fullname="D. Stiliadis" initials="D." surname="Stiliadis"/>
            <date month="March" year="2002"/>
            <abstract>
              <t>This document defines a PHB (per-hop behavior) called Expedited Forwarding (EF). The PHB is a basic building block in the Differentiated Services architecture. EF is intended to provide a building block for low delay, low jitter and low loss services by ensuring that the EF aggregate is served at a certain configured rate. This document obsoletes RFC 2598. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3246"/>
          <seriesInfo name="DOI" value="10.17487/RFC3246"/>
        </reference>
        <reference anchor="RFC4884">
          <front>
            <title>Extended ICMP to Support Multi-Part Messages</title>
            <author fullname="R. Bonica" initials="R." surname="Bonica"/>
            <author fullname="D. Gan" initials="D." surname="Gan"/>
            <author fullname="D. Tappan" initials="D." surname="Tappan"/>
            <author fullname="C. Pignataro" initials="C." surname="Pignataro"/>
            <date month="April" year="2007"/>
            <abstract>
              <t>This document redefines selected ICMP messages to support multi-part operation. A multi-part ICMP message carries all of the information that ICMP messages carried previously, as well as additional information that applications may require.</t>
              <t>Multi-part messages are supported by an ICMP extension structure. The extension structure is situated at the end of the ICMP message. It includes an extension header followed by one or more extension objects. Each extension object contains an object header and object payload. All object headers share a common format.</t>
              <t>This document further redefines the above mentioned ICMP messages by specifying a length attribute. All of the currently defined ICMP messages to which an extension structure can be appended include an "original datagram" field. The "original datagram" field contains the initial octets of the datagram that elicited the ICMP error message. Although the original datagram field is of variable length, the ICMP message does not include a field that specifies its length. Therefore, in order to facilitate message parsing, this document allocates eight previously reserved bits to reflect the length of the "original datagram" field.</t>
              <t>The proposed modifications change the requirements for ICMP compliance. The impact of these changes on compliant implementations is discussed, and new requirements for future implementations are presented.</t>
              <t>This memo updates RFC 792 and RFC 4443. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4884"/>
          <seriesInfo name="DOI" value="10.17487/RFC4884"/>
        </reference>
        <reference anchor="RFC9907">
          <front>
            <title>Guidelines for Authors and Reviewers of Documents Containing YANG Data Models</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Boucadair" initials="M." role="editor" surname="Boucadair"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="March" year="2026"/>
            <abstract>
              <t>This document provides guidelines for authors and reviewers of specifications containing YANG data models, including IANA-maintained YANG modules. Recommendations and procedures are defined, which are intended to increase interoperability and usability of Network Configuration Protocol (NETCONF) and RESTCONF protocol implementations that utilize YANG modules.</t>
              <t>This document obsoletes RFC 8407; it also updates RFC 8126 by providing additional guidelines for writing the IANA considerations for RFCs that specify IANA-maintained YANG modules.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="216"/>
          <seriesInfo name="RFC" value="9907"/>
          <seriesInfo name="DOI" value="10.17487/RFC9907"/>
        </reference>
        <reference anchor="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC4252">
          <front>
            <title>The Secure Shell (SSH) Authentication Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>The Secure Shell Protocol (SSH) is a protocol for secure remote login and other secure network services over an insecure network. This document describes the SSH authentication protocol framework and public key, password, and host-based client authentication methods. Additional authentication methods are described in separate documents. The SSH authentication protocol runs on top of the SSH transport layer protocol and provides a single authenticated tunnel for the SSH connection protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4252"/>
          <seriesInfo name="DOI" value="10.17487/RFC4252"/>
        </reference>
        <reference anchor="RFC9846">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="July" year="2026"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document obsoletes RFC 8446, which specified TLS 1.3. This document obsoletes RFC 5246 (specifying TLS 1.2) and RFCs 5077, 6961, 7627, and 8422, all of which pertain to TLS 1.2 or earlier, and updates RFCs 5705 and 6066. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9846"/>
          <seriesInfo name="DOI" value="10.17487/RFC9846"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
      </references>
    </references>
    <?line 1803?>

<section anchor="wheredropped">
      <name>Where Do Packets Get Dropped?</name>
      <t>Understanding where packets are discarded in a network device is essential for interpreting discard signals and determining appropriate mitigation actions.  <xref target="ex-drop"/> depicts an example of where and why packets may be discarded in a typical single-ASIC, shared-buffered type device. While actual device architectures vary between vendors and platforms, with some using multiple ASICs, distributed forwarding, or different buffering architectures, this example illustrates the common processing stages where packets may be dropped. The logical model for classifying and reporting discards remains consistent regardless of the underlying hardware architecture.</t>
      <t>Packets ingress on the left and egress on the right:</t>
      <figure anchor="ex-drop">
        <name>Example of Where Packets Get Dropped</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="448" width="568" viewBox="0 0 568 448" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 40,176 L 40,192" fill="none" stroke="black"/>
              <path d="M 40,224 L 40,240" fill="none" stroke="black"/>
              <path d="M 72,144 L 72,176" fill="none" stroke="black"/>
              <path d="M 104,176 L 104,240" fill="none" stroke="black"/>
              <path d="M 128,176 L 128,192" fill="none" stroke="black"/>
              <path d="M 128,224 L 128,240" fill="none" stroke="black"/>
              <path d="M 216,176 L 216,240" fill="none" stroke="black"/>
              <path d="M 232,32 L 232,96" fill="none" stroke="black"/>
              <path d="M 240,176 L 240,192" fill="none" stroke="black"/>
              <path d="M 240,224 L 240,240" fill="none" stroke="black"/>
              <path d="M 264,96 L 264,144" fill="none" stroke="black"/>
              <path d="M 296,96 L 296,144" fill="none" stroke="black"/>
              <path d="M 320,176 L 320,240" fill="none" stroke="black"/>
              <path d="M 328,32 L 328,96" fill="none" stroke="black"/>
              <path d="M 344,176 L 344,192" fill="none" stroke="black"/>
              <path d="M 344,224 L 344,240" fill="none" stroke="black"/>
              <path d="M 432,176 L 432,240" fill="none" stroke="black"/>
              <path d="M 456,176 L 456,192" fill="none" stroke="black"/>
              <path d="M 456,224 L 456,240" fill="none" stroke="black"/>
              <path d="M 488,144 L 488,176" fill="none" stroke="black"/>
              <path d="M 520,176 L 520,240" fill="none" stroke="black"/>
              <path d="M 232,32 L 328,32" fill="none" stroke="black"/>
              <path d="M 232,96 L 288,96" fill="none" stroke="black"/>
              <path d="M 304,96 L 328,96" fill="none" stroke="black"/>
              <path d="M 72,144 L 256,144" fill="none" stroke="black"/>
              <path d="M 272,144 L 488,144" fill="none" stroke="black"/>
              <path d="M 40,176 L 104,176" fill="none" stroke="black"/>
              <path d="M 128,176 L 216,176" fill="none" stroke="black"/>
              <path d="M 240,176 L 320,176" fill="none" stroke="black"/>
              <path d="M 344,176 L 432,176" fill="none" stroke="black"/>
              <path d="M 456,176 L 520,176" fill="none" stroke="black"/>
              <path d="M 24,208 L 40,208" fill="none" stroke="black"/>
              <path d="M 104,208 L 128,208" fill="none" stroke="black"/>
              <path d="M 216,208 L 240,208" fill="none" stroke="black"/>
              <path d="M 320,208 L 344,208" fill="none" stroke="black"/>
              <path d="M 432,208 L 456,208" fill="none" stroke="black"/>
              <path d="M 520,208 L 536,208" fill="none" stroke="black"/>
              <path d="M 40,240 L 104,240" fill="none" stroke="black"/>
              <path d="M 128,240 L 216,240" fill="none" stroke="black"/>
              <path d="M 240,240 L 320,240" fill="none" stroke="black"/>
              <path d="M 344,240 L 432,240" fill="none" stroke="black"/>
              <path d="M 456,240 L 520,240" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="544,208 532,202.4 532,213.6" fill="black" transform="rotate(0,536,208)"/>
              <polygon class="arrowhead" points="464,208 452,202.4 452,213.6" fill="black" transform="rotate(0,456,208)"/>
              <polygon class="arrowhead" points="352,208 340,202.4 340,213.6" fill="black" transform="rotate(0,344,208)"/>
              <polygon class="arrowhead" points="304,96 292,90.4 292,101.6" fill="black" transform="rotate(270,296,96)"/>
              <polygon class="arrowhead" points="272,144 260,138.4 260,149.6" fill="black" transform="rotate(90,264,144)"/>
              <polygon class="arrowhead" points="248,208 236,202.4 236,213.6" fill="black" transform="rotate(0,240,208)"/>
              <polygon class="arrowhead" points="136,208 124,202.4 124,213.6" fill="black" transform="rotate(0,128,208)"/>
              <polygon class="arrowhead" points="48,208 36,202.4 36,213.6" fill="black" transform="rotate(0,40,208)"/>
              <g class="text">
                <text x="280" y="52">Control</text>
                <text x="280" y="68">Plane</text>
                <text x="220" y="116">from_cpu</text>
                <text x="332" y="116">to_cpu</text>
                <text x="12" y="212">Rx</text>
                <text x="72" y="212">PHY/MAC</text>
                <text x="168" y="212">Ingress</text>
                <text x="280" y="212">Buffers</text>
                <text x="380" y="212">Egress</text>
                <text x="488" y="212">PHY/MAC</text>
                <text x="556" y="212">Tx</text>
                <text x="172" y="228">Pipeline</text>
                <text x="388" y="228">Pipeline</text>
                <text x="40" y="276">Typically</text>
                <text x="128" y="276">Unintended:</text>
                <text x="76" y="292">errors/l2/rx</text>
                <text x="188" y="292">errors/l3/rx</text>
                <text x="288" y="292">no-buffer</text>
                <text x="404" y="292">errors/l3/tx</text>
                <text x="212" y="308">errors/l3/no-route</text>
                <text x="224" y="324">errors/l3/ttl-expired</text>
                <text x="200" y="340">errors/internal</text>
                <text x="40" y="356">Typically</text>
                <text x="120" y="356">Intended:</text>
                <text x="180" y="372">policy/acl</text>
                <text x="396" y="372">policy/acl</text>
                <text x="196" y="388">policy/policer</text>
                <text x="412" y="388">policy/policer</text>
                <text x="180" y="404">policy/rpf</text>
                <text x="208" y="420">policy/null-route</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                            .-----------.
                            |  Control  |
                            |   Plane   |
                            |           |
                            '---+---^---'
                       from_cpu |   | to_cpu
                                |   |
        .-----------------------v---+-----------------------.
        |                                                   |
    .---+---.  .----------.  .---------.  .----------.  .---+---.
    |       |  |          |  |         |  |          |  |       |
Rx-->PHY/MAC+--> Ingress  +--> Buffers +--> Egress   +-->PHY/MAC+-> Tx
    |       |  | Pipeline |  |         |  | Pipeline |  |       |
    '-------'  '----------'  '---------'  '----------'  '-------'

Typically Unintended:
   errors/l2/rx  errors/l3/rx  no-buffer    errors/l3/tx
                 errors/l3/no-route
                 errors/l3/ttl-expired
                 errors/internal
Typically Intended:
                 policy/acl                 policy/acl
                 policy/policer             policy/policer
                 policy/rpf
                 policy/null-route

]]></artwork>
        </artset>
      </figure>
      <t>See <xref target="mapping"/> for examples of how these discard signals map to root causes and mitigation actions.</t>
    </section>
    <section anchor="mapping">
      <name>Example Signal-to-mitigation Action Mapping</name>
      <t>The effectiveness of automated mitigation depends on correctly mapping discard signals to root causes and appropriate actions.  Tables <xref format="counter" target="ex-table"/> and <xref format="counter" target="ex-table2"/> give example discard signal-to-mitigation action mappings based on the features described in <xref target="problem"/>.</t>
      <t>Tables <xref format="counter" target="ex-table"/> and <xref format="counter" target="ex-table2"/> are a single logical example split into two physical tables for readability. Rows with the same Case value correspond. Table <xref format="counter" target="ex-table"/> shows the observed discard signal, inferred cause, rate, and duration. Table <xref format="counter" target="ex-table2"/> shows the example operator determination of whether the discard is unintended and the corresponding example mitigation action.</t>
      <t>The "Unintended?" column is illustrative. It is not a normative property of the discard class. In practice, the same discard class can be intended or unintended depending on the operator's policy, expected baseline for that class, persistence of the signal, affected scope, and other operational context.</t>
      <table anchor="ex-table">
        <name>Example Signal-Cause-Mitigation Mapping (1)</name>
        <thead>
          <tr>
            <th align="left">Case</th>
            <th align="left">DISCARD-CLASS</th>
            <th align="left">Discard Cause</th>
            <th align="left">DISCARD-RATE</th>
            <th align="center">DISCARD-DURATION</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">E1</td>
            <td align="left">ingress/discards/errors/l2/rx</td>
            <td align="left">Upstream device or link error</td>
            <td align="left">&gt;Baseline</td>
            <td align="center">O(1min)</td>
          </tr>
          <tr>
            <td align="left">T1</td>
            <td align="left">ingress/discards/errors/l3/ttl-expired</td>
            <td align="left">Traceroute</td>
            <td align="left">&lt;=Baseline</td>
            <td align="center"> </td>
          </tr>
          <tr>
            <td align="left">T2</td>
            <td align="left">ingress/discards/errors/l3/ttl-expired</td>
            <td align="left">Convergence</td>
            <td align="left">&gt;Baseline</td>
            <td align="center">O(1s)</td>
          </tr>
          <tr>
            <td align="left">T3</td>
            <td align="left">ingress/discards/errors/l3/ttl-expired</td>
            <td align="left">Routing loop</td>
            <td align="left">&gt;Baseline</td>
            <td align="center">O(1min)</td>
          </tr>
          <tr>
            <td align="left">P1</td>
            <td align="left">.*/policy/.*</td>
            <td align="left">Policy</td>
            <td align="left"> </td>
            <td align="center"> </td>
          </tr>
          <tr>
            <td align="left">R1</td>
            <td align="left">ingress/discards/errors/l3/no-route</td>
            <td align="left">Convergence</td>
            <td align="left">&gt;Baseline</td>
            <td align="center">O(1s)</td>
          </tr>
          <tr>
            <td align="left">R2</td>
            <td align="left">ingress/discards/errors/l3/no-route</td>
            <td align="left">Config error</td>
            <td align="left">&gt;Baseline</td>
            <td align="center">O(1min)</td>
          </tr>
          <tr>
            <td align="left">R3</td>
            <td align="left">ingress/discards/errors/l3/no-route</td>
            <td align="left">Invalid destination</td>
            <td align="left">&gt;Baseline</td>
            <td align="center">O(10min)</td>
          </tr>
          <tr>
            <td align="left">I1</td>
            <td align="left">ingress/discards/errors/internal</td>
            <td align="left">Device errors</td>
            <td align="left">&gt;Baseline</td>
            <td align="center">O(1min)</td>
          </tr>
          <tr>
            <td align="left">B1</td>
            <td align="left">egress/discards/no-buffer</td>
            <td align="left">Congestion</td>
            <td align="left">&lt;=Baseline</td>
            <td align="center"> </td>
          </tr>
          <tr>
            <td align="left">B2</td>
            <td align="left">egress/discards/no-buffer</td>
            <td align="left">Congestion</td>
            <td align="left">&gt;Baseline</td>
            <td align="center">O(1min)</td>
          </tr>
          <tr>
            <td align="left">A1</td>
            <td align="left">egress/discards/no-buffer/../discard-type[type="aqm"]/</td>
            <td align="left">AQM drop</td>
            <td align="left">&lt;=SLA</td>
            <td align="center"> </td>
          </tr>
          <tr>
            <td align="left">A2</td>
            <td align="left">egress/discards/no-buffer/../discard-type[type="aqm"]/</td>
            <td align="left">AQM drop</td>
            <td align="left">&gt;SLA</td>
            <td align="center">O(1min)</td>
          </tr>
        </tbody>
      </table>
      <table anchor="ex-table2">
        <name>Example Signal-Cause-Mitigation Mapping (2)</name>
        <thead>
          <tr>
            <th align="left">Case</th>
            <th align="left">DISCARD-CLASS</th>
            <th align="center">Unintended?</th>
            <th align="left">Possible actions</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">E1</td>
            <td align="left">ingress/discards/errors/l2/rx</td>
            <td align="center">Y</td>
            <td align="left">Take upstream link or device out of service</td>
          </tr>
          <tr>
            <td align="left">T1</td>
            <td align="left">ingress/discards/errors/l3/ttl-expired</td>
            <td align="center">N</td>
            <td align="left">No action</td>
          </tr>
          <tr>
            <td align="left">T2</td>
            <td align="left">ingress/discards/errors/l3/ttl-expired</td>
            <td align="center">Y</td>
            <td align="left">No action</td>
          </tr>
          <tr>
            <td align="left">T3</td>
            <td align="left">ingress/discards/errors/l3/ttl-expired</td>
            <td align="center">Y</td>
            <td align="left">Roll back change</td>
          </tr>
          <tr>
            <td align="left">P1</td>
            <td align="left">.*/policy/.*</td>
            <td align="center">N</td>
            <td align="left">No action</td>
          </tr>
          <tr>
            <td align="left">R1</td>
            <td align="left">ingress/discards/errors/l3/no-route</td>
            <td align="center">Y</td>
            <td align="left">No action</td>
          </tr>
          <tr>
            <td align="left">R2</td>
            <td align="left">ingress/discards/errors/l3/no-route</td>
            <td align="center">Y</td>
            <td align="left">Roll back change</td>
          </tr>
          <tr>
            <td align="left">R3</td>
            <td align="left">ingress/discards/errors/l3/no-route</td>
            <td align="center">N</td>
            <td align="left">Escalate to operator</td>
          </tr>
          <tr>
            <td align="left">I1</td>
            <td align="left">ingress/discards/errors/internal</td>
            <td align="center">Y</td>
            <td align="left">Take device out of service</td>
          </tr>
          <tr>
            <td align="left">B1</td>
            <td align="left">egress/discards/no-buffer</td>
            <td align="center">N</td>
            <td align="left">No action</td>
          </tr>
          <tr>
            <td align="left">B2</td>
            <td align="left">egress/discards/no-buffer</td>
            <td align="center">Y</td>
            <td align="left">Bring capacity back into service or move traffic</td>
          </tr>
          <tr>
            <td align="left">A1</td>
            <td align="left">egress/discards/no-buffer/../discard-type[type="aqm"]/</td>
            <td align="center">N</td>
            <td align="left">No action</td>
          </tr>
          <tr>
            <td align="left">A2</td>
            <td align="left">egress/discards/no-buffer/../discard-type[type="aqm"]/</td>
            <td align="center">Y</td>
            <td align="left">Move traffic or add capacity</td>
          </tr>
        </tbody>
      </table>
      <t>The 'Baseline' in the 'DISCARD-RATE' column is both DISCARD-CLASS and network dependent. A rate less than or equal to baseline generally represents expected behaviour for that operator and network context. A rate greater than baseline indicates an anomaly candidate.</t>
    </section>
    <section anchor="sec-im-full-tree">
      <name>Full Information Model Tree</name>
      <t>The following YANG tree diagram shows the complete IM structure:</t>
      <artwork><![CDATA[
module: ietf-packet-discard-reporting-sx

  structure packet-discard-reporting:
    +-- control-plane {pdr-common:control-plane-stats}?
    |  +-- traffic* [direction]
    |  |  +-- direction    identityref
    |  |  +-- packets?     yang:counter64
    |  |  +-- bytes?       yang:counter64
    |  +-- discards* [direction]
    |     +-- direction    identityref
    |     +-- packets?     yang:counter64
    |     +-- bytes?       yang:counter64
    |     +-- policy
    |        +-- packets?   yang:counter64
    +-- interface* [name] {pdr-common:interface-stats}?
    |  +-- name        string
    |  +-- traffic* [direction]
    |  |  +-- direction    identityref
    |  |  +-- l2
    |  |  |  +-- frames?   yang:counter64
    |  |  |  +-- bytes?    yang:counter64
    |  |  +-- l3
    |  |  |  +-- address-family-stat* [address-family]
    |  |  |     +-- address-family    identityref
    |  |  |     +-- packets?          yang:counter64
    |  |  |     +-- bytes?            yang:counter64
    |  |  |     +-- unicast
    |  |  |     |  +-- packets?   yang:counter64
    |  |  |     |  +-- bytes?     yang:counter64
    |  |  |     +-- multicast
    |  |  |     |  +-- packets?   yang:counter64
    |  |  |     |  +-- bytes?     yang:counter64
    |  |  |     +-- broadcast
    |  |  |        +-- packets?   yang:counter64
    |  |  |        +-- bytes?     yang:counter64
    |  |  +-- qos!
    |  |     +-- class* [id]
    |  |        +-- id         string
    |  |        +-- packets?   yang:counter64
    |  |        +-- bytes?     yang:counter64
    |  +-- discards* [direction]
    |     +-- direction    identityref
    |     +-- l2
    |     |  +-- frames?   yang:counter64
    |     |  +-- bytes?    yang:counter64
    |     +-- l3
    |     |  +-- address-family-stat* [address-family]
    |     |     +-- address-family    identityref
    |     |     +-- packets?          yang:counter64
    |     |     +-- bytes?            yang:counter64
    |     |     +-- unicast
    |     |     |  +-- packets?   yang:counter64
    |     |     |  +-- bytes?     yang:counter64
    |     |     +-- multicast
    |     |     |  +-- packets?   yang:counter64
    |     |     |  +-- bytes?     yang:counter64
    |     |     +-- broadcast
    |     |        +-- packets?   yang:counter64
    |     |        +-- bytes?     yang:counter64
    |     +-- errors
    |     |  +-- l2
    |     |  |  +-- rx
    |     |  |  |  +-- frames?          yang:counter64
    |     |  |  |  +-- crc-error?       yang:counter64
    |     |  |  |  +-- invalid-mac?     yang:counter64
    |     |  |  |  +-- invalid-vlan?    yang:counter64
    |     |  |  |  +-- invalid-frame?   yang:counter64
    |     |  |  +-- tx
    |     |  |     +-- frames?   yang:counter64
    |     |  +-- l3
    |     |  |  +-- rx
    |     |  |  |  +-- packets?          yang:counter64
    |     |  |  |  +-- checksum-error?   yang:counter64
    |     |  |  |  +-- invalid-packet?   yang:counter64
    |     |  |  +-- mtu-exceeded
    |     |  |  |  +-- packets?
    |     |  |  |  |       yang:counter64
    |     |  |  |  +-- fragmentation-not-permitted?
    |     |  |  |  |       yang:counter64
    |     |  |  |  +-- fragmentation-permitted-not-performed?
    |     |  |  |          yang:counter64
    |     |  |  +-- ttl-expired?                   yang:counter64
    |     |  |  +-- no-route?                      yang:counter64
    |     |  |  +-- neighbor-resolution-failure?   yang:counter64
    |     |  |  +-- invalid-sid?                   yang:counter64
    |     |  |  +-- invalid-label?                 yang:counter64
    |     |  |  +-- tx
    |     |  |     +-- packets?   yang:counter64
    |     |  +-- internal
    |     |     +-- packets?        yang:counter64
    |     |     +-- parity-error?   yang:counter64
    |     +-- policy
    |     |  +-- l2
    |     |  |  +-- frames?   yang:counter64
    |     |  |  +-- acl?      yang:counter64
    |     |  +-- l3
    |     |     +-- packets?      yang:counter64
    |     |     +-- acl?          yang:counter64
    |     |     +-- policer
    |     |     |  +-- packets?   yang:counter64
    |     |     |  +-- bytes?     yang:counter64
    |     |     |  +-- classes!
    |     |     |     +-- class* [id]
    |     |     |        +-- id         string
    |     |     |        +-- packets?   yang:counter64
    |     |     |        +-- bytes?     yang:counter64
    |     |     +-- null-route?   yang:counter64
    |     |     +-- rpf?          yang:counter64
    |     |     +-- dos?          yang:counter64
    |     +-- no-buffer
    |        +-- qos!
    |           +-- class* [id]
    |              +-- id              string
    |              +-- packets?        yang:counter64
    |              +-- bytes?          yang:counter64
    |              +-- discard-type* [type]
    |                 +-- type       identityref
    |                 +-- packets?   yang:counter64
    |                 +-- bytes?     yang:counter64
    +-- flow* [direction] {pdr-common:flow-reporting}?
    |  +-- direction    identityref
    |  +-- traffic
    |  |  +-- l2
    |  |  |  +-- frames?   yang:counter64
    |  |  |  +-- bytes?    yang:counter64
    |  |  +-- l3
    |  |  |  +-- address-family-stat* [address-family]
    |  |  |     +-- address-family    identityref
    |  |  |     +-- packets?          yang:counter64
    |  |  |     +-- bytes?            yang:counter64
    |  |  |     +-- unicast
    |  |  |     |  +-- packets?   yang:counter64
    |  |  |     |  +-- bytes?     yang:counter64
    |  |  |     +-- multicast
    |  |  |     |  +-- packets?   yang:counter64
    |  |  |     |  +-- bytes?     yang:counter64
    |  |  |     +-- broadcast
    |  |  |        +-- packets?   yang:counter64
    |  |  |        +-- bytes?     yang:counter64
    |  |  +-- qos!
    |  |     +-- class* [id]
    |  |        +-- id         string
    |  |        +-- packets?   yang:counter64
    |  |        +-- bytes?     yang:counter64
    |  +-- discards
    |     +-- l2
    |     |  +-- frames?   yang:counter64
    |     |  +-- bytes?    yang:counter64
    |     +-- l3
    |     |  +-- address-family-stat* [address-family]
    |     |     +-- address-family    identityref
    |     |     +-- packets?          yang:counter64
    |     |     +-- bytes?            yang:counter64
    |     |     +-- unicast
    |     |     |  +-- packets?   yang:counter64
    |     |     |  +-- bytes?     yang:counter64
    |     |     +-- multicast
    |     |     |  +-- packets?   yang:counter64
    |     |     |  +-- bytes?     yang:counter64
    |     |     +-- broadcast
    |     |        +-- packets?   yang:counter64
    |     |        +-- bytes?     yang:counter64
    |     +-- errors
    |     |  +-- l2
    |     |  |  +-- rx
    |     |  |  |  +-- frames?          yang:counter64
    |     |  |  |  +-- crc-error?       yang:counter64
    |     |  |  |  +-- invalid-mac?     yang:counter64
    |     |  |  |  +-- invalid-vlan?    yang:counter64
    |     |  |  |  +-- invalid-frame?   yang:counter64
    |     |  |  +-- tx
    |     |  |     +-- frames?   yang:counter64
    |     |  +-- l3
    |     |  |  +-- rx
    |     |  |  |  +-- packets?          yang:counter64
    |     |  |  |  +-- checksum-error?   yang:counter64
    |     |  |  |  +-- invalid-packet?   yang:counter64
    |     |  |  +-- mtu-exceeded
    |     |  |  |  +-- packets?
    |     |  |  |  |       yang:counter64
    |     |  |  |  +-- fragmentation-not-permitted?
    |     |  |  |  |       yang:counter64
    |     |  |  |  +-- fragmentation-permitted-not-performed?
    |     |  |  |          yang:counter64
    |     |  |  +-- ttl-expired?                   yang:counter64
    |     |  |  +-- no-route?                      yang:counter64
    |     |  |  +-- neighbor-resolution-failure?   yang:counter64
    |     |  |  +-- invalid-sid?                   yang:counter64
    |     |  |  +-- invalid-label?                 yang:counter64
    |     |  |  +-- tx
    |     |  |     +-- packets?   yang:counter64
    |     |  +-- internal
    |     |     +-- packets?        yang:counter64
    |     |     +-- parity-error?   yang:counter64
    |     +-- policy
    |     |  +-- l2
    |     |  |  +-- frames?   yang:counter64
    |     |  |  +-- acl?      yang:counter64
    |     |  +-- l3
    |     |     +-- packets?      yang:counter64
    |     |     +-- acl?          yang:counter64
    |     |     +-- policer
    |     |     |  +-- packets?   yang:counter64
    |     |     |  +-- bytes?     yang:counter64
    |     |     |  +-- classes!
    |     |     |     +-- class* [id]
    |     |     |        +-- id         string
    |     |     |        +-- packets?   yang:counter64
    |     |     |        +-- bytes?     yang:counter64
    |     |     +-- null-route?   yang:counter64
    |     |     +-- rpf?          yang:counter64
    |     |     +-- dos?          yang:counter64
    |     +-- no-buffer
    |        +-- qos!
    |           +-- class* [id]
    |              +-- id              string
    |              +-- packets?        yang:counter64
    |              +-- bytes?          yang:counter64
    |              +-- discard-type* [type]
    |                 +-- type       identityref
    |                 +-- packets?   yang:counter64
    |                 +-- bytes?     yang:counter64
    +-- device {pdr-common:device-stats}?
       +-- traffic
       |  +-- l2
       |  |  +-- frames?   yang:counter64
       |  |  +-- bytes?    yang:counter64
       |  +-- l3
       |  |  +-- address-family-stat* [address-family]
       |  |     +-- address-family    identityref
       |  |     +-- packets?          yang:counter64
       |  |     +-- bytes?            yang:counter64
       |  |     +-- unicast
       |  |     |  +-- packets?   yang:counter64
       |  |     |  +-- bytes?     yang:counter64
       |  |     +-- multicast
       |  |     |  +-- packets?   yang:counter64
       |  |     |  +-- bytes?     yang:counter64
       |  |     +-- broadcast
       |  |        +-- packets?   yang:counter64
       |  |        +-- bytes?     yang:counter64
       |  +-- qos!
       |     +-- class* [id]
       |        +-- id         string
       |        +-- packets?   yang:counter64
       |        +-- bytes?     yang:counter64
       +-- discards
          +-- l2
          |  +-- frames?   yang:counter64
          |  +-- bytes?    yang:counter64
          +-- l3
          |  +-- address-family-stat* [address-family]
          |     +-- address-family    identityref
          |     +-- packets?          yang:counter64
          |     +-- bytes?            yang:counter64
          |     +-- unicast
          |     |  +-- packets?   yang:counter64
          |     |  +-- bytes?     yang:counter64
          |     +-- multicast
          |     |  +-- packets?   yang:counter64
          |     |  +-- bytes?     yang:counter64
          |     +-- broadcast
          |        +-- packets?   yang:counter64
          |        +-- bytes?     yang:counter64
          +-- errors
          |  +-- l2
          |  |  +-- rx
          |  |  |  +-- frames?          yang:counter64
          |  |  |  +-- crc-error?       yang:counter64
          |  |  |  +-- invalid-mac?     yang:counter64
          |  |  |  +-- invalid-vlan?    yang:counter64
          |  |  |  +-- invalid-frame?   yang:counter64
          |  |  +-- tx
          |  |     +-- frames?   yang:counter64
          |  +-- l3
          |  |  +-- rx
          |  |  |  +-- packets?          yang:counter64
          |  |  |  +-- checksum-error?   yang:counter64
          |  |  |  +-- invalid-packet?   yang:counter64
          |  |  +-- mtu-exceeded
          |  |  |  +-- packets?
          |  |  |  |       yang:counter64
          |  |  |  +-- fragmentation-not-permitted?
          |  |  |  |       yang:counter64
          |  |  |  +-- fragmentation-permitted-not-performed?
          |  |  |          yang:counter64
          |  |  +-- ttl-expired?                   yang:counter64
          |  |  +-- no-route?                      yang:counter64
          |  |  +-- neighbor-resolution-failure?   yang:counter64
          |  |  +-- invalid-sid?                   yang:counter64
          |  |  +-- invalid-label?                 yang:counter64
          |  |  +-- tx
          |  |     +-- packets?   yang:counter64
          |  +-- internal
          |     +-- packets?        yang:counter64
          |     +-- parity-error?   yang:counter64
          +-- policy
          |  +-- l2
          |  |  +-- frames?   yang:counter64
          |  |  +-- acl?      yang:counter64
          |  +-- l3
          |     +-- packets?      yang:counter64
          |     +-- acl?          yang:counter64
          |     +-- policer
          |     |  +-- packets?   yang:counter64
          |     |  +-- bytes?     yang:counter64
          |     |  +-- classes!
          |     |     +-- class* [id]
          |     |        +-- id         string
          |     |        +-- packets?   yang:counter64
          |     |        +-- bytes?     yang:counter64
          |     +-- null-route?   yang:counter64
          |     +-- rpf?          yang:counter64
          |     +-- dos?          yang:counter64
          +-- no-buffer
             +-- qos!
                +-- class* [id]
                   +-- id              string
                   +-- packets?        yang:counter64
                   +-- bytes?          yang:counter64
                   +-- discard-type* [type]
                      +-- type       identityref
                      +-- packets?   yang:counter64
                      +-- bytes?     yang:counter64
]]></artwork>
    </section>
    <section anchor="sec-dm-full-tree">
      <name>Full Data Model Tree</name>
      <t>The following YANG tree diagram shows the complete DM structure:</t>
      <artwork><![CDATA[
module: ietf-packet-discard-reporting

  augment /rt:routing/rt:control-plane-protocols
            /rt:control-plane-protocol:
    +--ro traffic-discard-stats {pdr-common:control-plane-stats}?
       +--ro discard-order-capability*   identityref
       +--ro traffic* [direction]
       |  +--ro direction    identityref
       |  +--ro packets?     yang:counter64
       |  +--ro bytes?       yang:counter64
       +--ro discards* [direction]
          +--ro direction    identityref
          +--ro packets?     yang:counter64
          +--ro bytes?       yang:counter64
          +--ro policy
             +--ro packets?   yang:counter64
  augment /if:interfaces/if:interface/if:statistics:
    +--ro traffic-discard-stats {pdr-common:interface-stats}?
       +--ro discard-order-capability*   identityref
       +--ro traffic* [direction]
       |  +--ro direction    identityref
       |  +--ro l2
       |  |  +--ro frames?   yang:counter64
       |  |  +--ro bytes?    yang:counter64
       |  +--ro l3
       |  |  +--ro address-family-stat* [address-family]
       |  |     +--ro address-family    identityref
       |  |     +--ro packets?          yang:counter64
       |  |     +--ro bytes?            yang:counter64
       |  |     +--ro unicast
       |  |     |  +--ro packets?   yang:counter64
       |  |     |  +--ro bytes?     yang:counter64
       |  |     +--ro multicast
       |  |     |  +--ro packets?   yang:counter64
       |  |     |  +--ro bytes?     yang:counter64
       |  |     +--ro broadcast
       |  |        +--ro packets?   yang:counter64
       |  |        +--ro bytes?     yang:counter64
       |  +--ro qos!
       |     +--ro class* [id]
       |        +--ro id         string
       |        +--ro packets?   yang:counter64
       |        +--ro bytes?     yang:counter64
       +--ro discards* [direction]
          +--ro direction    identityref
          +--ro l2
          |  +--ro frames?   yang:counter64
          |  +--ro bytes?    yang:counter64
          +--ro l3
          |  +--ro address-family-stat* [address-family]
          |     +--ro address-family    identityref
          |     +--ro packets?          yang:counter64
          |     +--ro bytes?            yang:counter64
          |     +--ro unicast
          |     |  +--ro packets?   yang:counter64
          |     |  +--ro bytes?     yang:counter64
          |     +--ro multicast
          |     |  +--ro packets?   yang:counter64
          |     |  +--ro bytes?     yang:counter64
          |     +--ro broadcast
          |        +--ro packets?   yang:counter64
          |        +--ro bytes?     yang:counter64
          +--ro errors
          |  +--ro l2
          |  |  +--ro rx
          |  |  |  +--ro frames?          yang:counter64
          |  |  |  +--ro crc-error?       yang:counter64
          |  |  |  +--ro invalid-mac?     yang:counter64
          |  |  |  +--ro invalid-vlan?    yang:counter64
          |  |  |  +--ro invalid-frame?   yang:counter64
          |  |  +--ro tx
          |  |     +--ro frames?   yang:counter64
          |  +--ro l3
          |  |  +--ro rx
          |  |  |  +--ro packets?          yang:counter64
          |  |  |  +--ro checksum-error?   yang:counter64
          |  |  |  +--ro invalid-packet?   yang:counter64
          |  |  +--ro mtu-exceeded
          |  |  |  +--ro packets?
          |  |  |  |       yang:counter64
          |  |  |  +--ro fragmentation-not-permitted?
          |  |  |  |       yang:counter64
          |  |  |  +--ro fragmentation-permitted-not-performed?
          |  |  |          yang:counter64
          |  |  +--ro ttl-expired?                   yang:counter64
          |  |  +--ro no-route?                      yang:counter64
          |  |  +--ro neighbor-resolution-failure?   yang:counter64
          |  |  +--ro invalid-sid?                   yang:counter64
          |  |  +--ro invalid-label?                 yang:counter64
          |  |  +--ro tx
          |  |     +--ro packets?   yang:counter64
          |  +--ro internal
          |     +--ro packets?        yang:counter64
          |     +--ro parity-error?   yang:counter64
          +--ro policy
          |  +--ro l2
          |  |  +--ro frames?   yang:counter64
          |  |  +--ro acl?      yang:counter64
          |  +--ro l3
          |     +--ro packets?      yang:counter64
          |     +--ro acl?          yang:counter64
          |     +--ro policer
          |     |  +--ro packets?   yang:counter64
          |     |  +--ro bytes?     yang:counter64
          |     |  +--ro classes!
          |     |     +--ro class* [id]
          |     |        +--ro id         string
          |     |        +--ro packets?   yang:counter64
          |     |        +--ro bytes?     yang:counter64
          |     +--ro null-route?   yang:counter64
          |     +--ro rpf?          yang:counter64
          |     +--ro dos?          yang:counter64
          +--ro no-buffer
             +--ro qos!
                +--ro class* [id]
                   +--ro id              string
                   +--ro packets?        yang:counter64
                   +--ro bytes?          yang:counter64
                   +--ro discard-type* [type]
                      +--ro type       identityref
                      +--ro packets?   yang:counter64
                      +--ro bytes?     yang:counter64
  augment /lne:logical-network-elements/lne:logical-network-element:
    +--ro traffic-discard-stats {pdr-common:device-stats}?
       +--ro discard-order-capability*   identityref
       +--ro traffic
       |  +--ro l2
       |  |  +--ro frames?   yang:counter64
       |  |  +--ro bytes?    yang:counter64
       |  +--ro l3
       |  |  +--ro address-family-stat* [address-family]
       |  |     +--ro address-family    identityref
       |  |     +--ro packets?          yang:counter64
       |  |     +--ro bytes?            yang:counter64
       |  |     +--ro unicast
       |  |     |  +--ro packets?   yang:counter64
       |  |     |  +--ro bytes?     yang:counter64
       |  |     +--ro multicast
       |  |     |  +--ro packets?   yang:counter64
       |  |     |  +--ro bytes?     yang:counter64
       |  |     +--ro broadcast
       |  |        +--ro packets?   yang:counter64
       |  |        +--ro bytes?     yang:counter64
       |  +--ro qos!
       |     +--ro class* [id]
       |        +--ro id         string
       |        +--ro packets?   yang:counter64
       |        +--ro bytes?     yang:counter64
       +--ro discards
          +--ro l2
          |  +--ro frames?   yang:counter64
          |  +--ro bytes?    yang:counter64
          +--ro l3
          |  +--ro address-family-stat* [address-family]
          |     +--ro address-family    identityref
          |     +--ro packets?          yang:counter64
          |     +--ro bytes?            yang:counter64
          |     +--ro unicast
          |     |  +--ro packets?   yang:counter64
          |     |  +--ro bytes?     yang:counter64
          |     +--ro multicast
          |     |  +--ro packets?   yang:counter64
          |     |  +--ro bytes?     yang:counter64
          |     +--ro broadcast
          |        +--ro packets?   yang:counter64
          |        +--ro bytes?     yang:counter64
          +--ro errors
          |  +--ro l2
          |  |  +--ro rx
          |  |  |  +--ro frames?          yang:counter64
          |  |  |  +--ro crc-error?       yang:counter64
          |  |  |  +--ro invalid-mac?     yang:counter64
          |  |  |  +--ro invalid-vlan?    yang:counter64
          |  |  |  +--ro invalid-frame?   yang:counter64
          |  |  +--ro tx
          |  |     +--ro frames?   yang:counter64
          |  +--ro l3
          |  |  +--ro rx
          |  |  |  +--ro packets?          yang:counter64
          |  |  |  +--ro checksum-error?   yang:counter64
          |  |  |  +--ro invalid-packet?   yang:counter64
          |  |  +--ro mtu-exceeded
          |  |  |  +--ro packets?
          |  |  |  |       yang:counter64
          |  |  |  +--ro fragmentation-not-permitted?
          |  |  |  |       yang:counter64
          |  |  |  +--ro fragmentation-permitted-not-performed?
          |  |  |          yang:counter64
          |  |  +--ro ttl-expired?                   yang:counter64
          |  |  +--ro no-route?                      yang:counter64
          |  |  +--ro neighbor-resolution-failure?   yang:counter64
          |  |  +--ro invalid-sid?                   yang:counter64
          |  |  +--ro invalid-label?                 yang:counter64
          |  |  +--ro tx
          |  |     +--ro packets?   yang:counter64
          |  +--ro internal
          |     +--ro packets?        yang:counter64
          |     +--ro parity-error?   yang:counter64
          +--ro policy
          |  +--ro l2
          |  |  +--ro frames?   yang:counter64
          |  |  +--ro acl?      yang:counter64
          |  +--ro l3
          |     +--ro packets?      yang:counter64
          |     +--ro acl?          yang:counter64
          |     +--ro policer
          |     |  +--ro packets?   yang:counter64
          |     |  +--ro bytes?     yang:counter64
          |     |  +--ro classes!
          |     |     +--ro class* [id]
          |     |        +--ro id         string
          |     |        +--ro packets?   yang:counter64
          |     |        +--ro bytes?     yang:counter64
          |     +--ro null-route?   yang:counter64
          |     +--ro rpf?          yang:counter64
          |     +--ro dos?          yang:counter64
          +--ro no-buffer
             +--ro qos!
                +--ro class* [id]
                   +--ro id              string
                   +--ro packets?        yang:counter64
                   +--ro bytes?          yang:counter64
                   +--ro discard-type* [type]
                      +--ro type       identityref
                      +--ro packets?   yang:counter64
                      +--ro bytes?     yang:counter64
]]></artwork>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The content of this document has benefitted from feedback from JR Rivers, Ronan Waide, Chris DeBruin, and Marcos Sanz.</t>
      <t>Thanks to Benoît Claise, Joe Clarke, Tom Petch, Mahesh Jethanandani, Paul Aitken, and Randy Bush for the review and comments.</t>
      <t>Thanks to Ladislav Lhotka for the YANGDOCTORS reviews, Sergio Belotti for the OPSDIR review, Satoru Matsushima for the INTDIR review,
Derrell Piper for the SECDIR review, Roni Even for the GENART review, and Michael Tüxen for the TSVART review. Special thanks to
Carlos Pignataro for the detailed INTDIR review and suggestions that enhanced this specification.</t>
      <t>Thanks to Diego Lopez for shepherding the document and Mahesh Jethanandani for the AD review.</t>
      <t>Thanks to Christopher Inacio, Éric Vyncke, Gorry Fairhurst, Ketan Talaulikar, Deb Cooley, and Mike Bishop for the IESG review.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact fullname="Nadav Chachmon">
        <organization>Cisco Systems, Inc.</organization>
        <address>
          <postal>
            <street>170 West Tasman Dr.</street>
            <city>San Jose</city>
            <region>CA</region>
            <code>95134</code>
            <country>US</country>
          </postal>
          <email>nchachmo@cisco.com</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+2923obx9Ugeo+nqJ++EOkA4EmSJTqxQ5GUzYwo0SSVxF9+
73EDaAAdNbrh7gYpRtK+328xTzBPMFfzv9hepzr1AWhQku3MkF9ikd1dVatW
rVqnWmtVr9frFFERhwfqNBmn2SwoojRRQTJSx0ERqLN0FMa5gjfqPBi+CQt1
HOXDIBupi3CeZkWUTDrBYJCF19DBGbc7W/75KB0mwQwGHGXBuOhFYTHupfM8
uJn0RvzxDAft7T7uDIMinKTZ7YHKi1GnE82zA1Vki7zY29l5urPXCbIwOFCv
5mFGYOc0/lmQBJNwFiaFOoT3nZs0ezPJ0sX8QG0s/1T9DT4FENV3+PlG5014
C41HBx3VU1fwaBCH+TRNaRbw6DgKJkmaF9EQ/3oZFjiSOlwUKWPRfXoZZtfR
MMRHF2EexVGYyF/pAOaThHnOf6WFGgaLnN4dJtBTfIu/nibDaARw4u9H0CCd
hZkK38J0uKfOdZgsQoBU3W2qShW3c1iTDfx1FkQx/MqL8mdcoH6aTfBNkA2n
8GZaFPP8YHsbP8RH0XXY159t44PtQZbe5OE2d7GNTSdRMV0MsNve/DaGwZI3
6fZyEsBmMZBAXjhjOs373Gc/WtXRitf9aTGDwTp5AZj670GcJoCJ2zDvzKMD
9Y8iHXZVDsSbheMcfrud4S8/dTrBopimGVIHwKlUlOQH6i99dXIdJDk9YTL/
SzpNnIdZipstHEVFmtEDwBluvlF0HY0WQUzPQl6Cf0LTPyfpnLZSHI6LQTiN
klE/CQtv1Fd9da6R4oz8Kg7f5DClrPS2HoSXMH4U0N85zDUEpO999eSJugwS
dQWEmKuTt/Nbej+MCtiT8AI4xBFQALfKwgmQ24E6OuSPALUH6umjnUe78vci
KXAvv75055ia5fxzQhD0h+msjNPvg8BDaTgeZ+GtfUwT+P78ZNlA/+RG/Sk0
+vN0HlbGOeyr/xaM0nzqjHR4HWUwf+c5DXUE1JOqy9u8CGdAE7A7+x7idr/a
UX8DulVXQT6D9sdZ30ccUAXu8Was7e4/XDaZ4A1B9OchAlKZyVlfPUsXw2AU
RJkzmbN0Cv+OSu/qqeEVTHsS+iA8h2fD0AVjxj32B7rHP6fUjiDqDFNoFw2A
IdpdMl7EMUPzEhpcq6NpMJzOkFn+bnCbDBkmB7mdhEXjNbFY+Dk9OTl5srPX
3/1BHtCPSNINfKsukZug6ENp+CIdBjEz4rDI0nkaR/CaWbHIiLzXe5ZFo0nI
DJt/H5m3G844hvP4P8xJYGznRY4SIo9Atlc+xy8B2MtipHgqvb2dvb2N8mfH
r07hq92d/u7uztNtbHR5ddzHT/u7Ozs7Dx8+feK2KYJsgsuk+fUojUgsLO3A
aT8Chg+cB972dvd6e3sg9rViYrB/cXL8dL8G8ReAuHSmwiCLb9UoLMIhaTMT
6PImuGU1BogSUMxaznUajQxJL0VtjzfWZV89j9PbUcPrv/bVX4JhOsiFnusx
EoUhSO44zVBohiFhB5SiBQrn7b1Hu0+e7lXwsb8LisUEBL/affp0v9Pp9Xoq
GMCWCIZFp3M1jXKlu4CJj6OEqMjT6UiVI9LK5+EwGkf4CaAjy8J8noL8AW3g
x8OX3+GIgSLBSAhj6aNEYMKeEkWur66mYc0I8ywFPs7jR7N5TEoHfdAD2RUC
q0dFRo0z4AKkG9GqxEGeR+NbBEIGjNM8V4NbFRU5q0RqM+xP+l0VZlmaAWew
K9lVCCfsqeHtFoIF2JAOoyGDFiYBam8gbVArguaqSIlCshngSt1Mo+GURkS4
s5BUq2EB2w86jpICYR4R7vhL/GSR6BddegMd5mEMrVQwBxzMswhWTs2iIpqI
Uk3UCIBHyTBeEL4DVhahb+e7dOz07WKDMV5eI2c1ywjHrgrERnWVEOmJKKch
N8nVDehTQBNjoCRAVUIzz8bBMOwCrlB/5ZkSX0/j3jwOAHdCGHmfqXIWjUYx
KKRfwKDw1WjBe1B+3n0ROU8/IOmGQDHRLMhuQTYkQw12YKCLaK2A0pMcKY8g
gBkAN9C0CTMfAh0TRmkVSNdWcXgNE00H/0Q2cB0C+p47kzaU0AVsj8KMlD/s
YZACEm6mISwxL/itR5HpcLjIGFVR4oMJSjygMQoYu6Bu8MAyFEysr44JjT3e
RP7q2o1TAE5mYFgAajOkpzyaJNIpGQGyT/Q8Yc2BtPrqb9MoDtUwzIoAIEN9
PkdMOkOA9rpA6s1ls/QGQQ5A6BXsEl0T5SG0IrDmASAd+iERGJfwR5uvnlph
0yYCmxpqk0VghrUAndKQf7VTgMVu1RnyvQEsB2xhvW+dTns8SIl1dJ3tjSwk
M6YVEzFsUhASy7cqqNWwABGwnhI78dFKJDqFLTPMFkNcfoAxTPIFILOYBkix
aMel8EGpURiAKagllTAYaoEUkEWTaSGQ0AjBmzDBrgXOkL7Si38VkDmHj26y
FFkLN8RFmEFLpC5A3wwoF1Aafs0k+jZAftEFpj4D2sNWmqsiWRCtAqMGkapp
DbuDVkBkA4TAEabAqbOQCZYAAYsL0IXwwn6ClQ9i0HVGt07/cZS8yZHB8kDI
QE7eRjk1n4GWFA1ZYhuJU0/K0fg0OTYUHI1fLQr3z9PkROQFYpde8wORk/As
URssyoTb5WwVq7PTZxvq3btvL54f7T15vP/hA3Wxccgs2PpHCErT2jG1desn
+w+htd5e+QIxE5EQhIayCXB+1W0APCsC1tTFhb0FY3j4BhYSSRJe8hpCfwXq
MF0PESqYTED7ReMZMB/rLU6zBWU9GRnWiYwsXRQiRm41EclOmTFZRbB1ptBP
mEyEyY54oRZRPoWtWdyEYeILSocpGAmhLkNY/hHNBjYVLUAkPgpkt7NBNFnA
PukC7w40OwdpCR/AcIiwa+gRJ+2JOeHshpphQXNgDOWvHGIggbFAkZcmsAFp
L+CL0OKFdy5ANQIGMUchf0P8FTongkbiKkSUC5JLXWCLkGifFs/pC4k+SWHX
AqncVsDMF3MSdLM0M9LVbAgAK2H0ddU0vQERlwlxTAMQNQNeB4ux2Okfl2JB
HBRXmIiJJG0ulkqEwqDE6fLhFNqy2IdFQQ4ORleh96bL0BzN0FsO3gNf7X21
AzvICDk9S3+Ha1JRsAPUOE5vEN+n56h133hazMlbar15ev789O9beoyd3V0Y
Y5FrKobvbwJSDMAaK4AB0+d+R4wbH5uGN+CCAXhBjqw05YXOU8ads48BaRmY
n4haYAERGnfAHa12Z4UPYDKIb2FxmB2xeHQkj+i4CMMGYnGRb7jjg3p7CL/M
ZiiENJcAiYNsg9FF2lKG+2yI5Mq8tcejaRbVY9XIXTxS/XBUzbixN9kFN6gL
Mahg66Pg1ouHyiUDe3rm8tPCM0jsJuElBfjB4MA3ok2DKI5E78nBKjBEX6JF
EYzUB88A2L88FGHlTZM/QlGR8kSwpcy9Ys5ozF9HgRKiQmE3CEULi2/ZVopp
QQldy3BbNZfWMtM2T8+22thqjhDaPIYmjXsSqSIYjaA94zkYpMAuojxfhGJX
wAqazTlvpfaQmkNKWYBKsU/ylqa5++Mzby4EfZO1clZrnmgOPAP1FlVcnJVh
dEPYfFOQ2pNpmU/12cjIh7BfzBCWNnPQQwDWcMT7RqPrRXALHGhfbVpj7ez8
xSUwmv8ARrO/sw+MZqtkG/Oe5pZ7bOA6sg+BMHo/q/Sg2gYAN2h6kzCrNwZF
E/3acqXInNCEb8PhwmIuRe4ytOIUbO04vcVZ9gTzQ1Ro0yIdprH9Ms/TYWSJ
OjCkKxvi9OjsnEUbCKE8B9VGTcJEWM8WjTQBWspw6w9umbhwQw+JMuZ6PA2C
cyYRk1OMTRFYpXfvREcFFg5EOMyigTAFeQ59BLLHs/CXBWxLoos+LIpmhCG0
RecKkEcuKENUK/MeP0aHEtnONBDvQuFhtJWLivuApSC2RcNbt7X0TBrTUk+K
cHuX3N05APFNWFeQRchDMroWhG8RpaLD8mD4oBBvAAyxiF3yACkxR0cLqtUA
9B/JnBXlQ9RYeDqDdQJYrVRGDhGJREEjP3xb1AEOWh+5zWDNvvhCnZDnGM2e
lykAtAniYRCyRWEpAvaMfLjVQecWfSqKiH13wL6bPLRGj9cZGGpAhQWdYswX
g1iWp09d+twVwSciAFoYhtM0BhNfXQfxIhShloS85al7+oi8eoR+QGMQR/+C
D6SFCJkimhELcceWgUGdIzdivpjNQBf4l6iEtDGB+SwGoC4XC6Z9o1oiDCBR
Cfxz4Fp5KGYp6y4xiCukJYGPCOWAPv5Sqb/Dj+r1vuENlyOVA7yIy2QxG6D2
hKgidto7ljZ7O3uPezv78D/bclgsYOnQy6iBdWZX4Zfo17kiqzqN08mtevdF
Yf8Sd84bUEbx3DRXG2evL682uvyvevmKfr84+eH16cXJMf5++f3hixfml458
cfn9q9cvju1vtuXRq7Ozk5fH3BieKu9RZ+Ps8McN3iQbr86vTl+9PHyxUdVH
EPW88iS1QdiR8Z13NNchHebZ0fn//h+7D4Xj7+3uPoWNwn882f3qIfwBuyrh
0ciK4D9RF+/AKqIMQgcREMEwmINCiIoI6Cs56JmJwv0I6/7lPxAzPx2oPw6G
892H38gDnLD3UOPMe0g4qz6pNGYk1jyqGcZg03tewrQP7+GP3t8a787DP34b
oxemt/vk2286QCNZiHIxmICAzIHD1amMTPxEjrCzmBYd/dKY1WBSVBQrdHdQ
v5qg7U5CYsUtdO7J7YPOgTpEQ0xMae390+IdOxfDDdhZYHyhaGBnoxhVKhjJ
MfaMCL1B/4Q2g1GbN0YxQH1acpoZLWLztGw5d2k3A+lkxRZCey5GqgZLzDp0
iw7CzPWokXRFEcVHH2MwsHVYAItG5oIhaqAwc2C9C7Jk4PMfgDHQr2MdvqA2
f0gvt0rm3bwEyyBkQ4eMUtBnUMFP1OFwiHg6YtexegFKm9o8PHqxBWAk5HUw
jkvtOUIHJqDpdcW7aBH1uupkaEKVtWRcg37IRk/ZKcwm/g2qwGYAwS+ZiBGK
VvbZoEOMlKMcbT4SB0Q8GSqqQFRz0JQj1ITYimOzud5j6pwMHHCnOAC7yVBR
RA1jMS8MxhlZoAAXX5PNn5G3GJRgVvj5xAMbgl6yiNEOM00HIVnbdUs2SnHL
6ZVDCRiNqNPwa5+C5CCmNIJuofeOhisWYhCcwdIT5/QAQYUCNVRS9tBi54AV
PDbQqiGLmPEiGQWkkMRGORzXOfdx706RkRhnM6xbbHyuxLPFzR96ZzplVy25
/TMGfuS4lkXdNU5kcbu6btqo4B2D1CAAkpgQKgFdb4ZSQjS+eVrIIYLW0Ily
xRatOoGNa118CTSj5nloX3PXdQADR9wlFzIxPcYnYspwOqRBOmQTIMVji7jY
hqfiyV3QO3EV9zt7fXURFosscVhmq44G6F2BCaS2r/0+WLnXYdWtXHYi00rH
YINHJf80LgCe93rzmwfFFHjMQ4AUZAQPHKD3hFTIKYYyUIfavUBLMSPHPLnb
aNuMXBul33nUVyfAiuKgkLYV5oJeCwUGRoHbBt0oTIV15h9rloaJiC0bDKJY
3E1y5Fgmw4oFqfjklY71xukiIy1tHAawPpVjIiCH5yeHV68vTnrHp5dHhxfH
vcujV+cnyE6PNeXnwj4F713rAWEzBZeTfUiB7z1CWU1ONNR+ab2GaD42nyqW
Ybk4vCJQyKCmPcejzYIJWD+LkZH7ViQ4/JrUcXT0IQLJUZ1NyH2gtV9ZR6Uu
CJHA3AZ0HoyuE1gcdi4GgzyNF4U5k9Z8dU5nXOjkVpvzeb61pci9GVP0gvk4
zJDAtsS6qJni8WuYJKhRepojzXJLM5M1mIbxPC975Vk08FF7OsNBtRNdvD7V
YY9eHF5e6jFR/ip9NE971aCTR43sgReJXKJEjWKXGLmnsecSOhGTVhB8oESK
mpmxVCELGbke9jsOQMbcWvdhmeV0Ya/0BovxOGzqR7gHHlTlHJqkowcsvyR3
hG0PwIvI0L0kqewp5G84FiD+3bvwbY8kLtgFiA1y3mu7HVDNh7N0qgsA126v
buUxUjobGE0EojcXKnkoYsUxaw3vukOt6plWoeMKWhxqlc60amlI4woZHR9j
hKDbxY3HC/pU41aU/LJHUpT+OscNHwM29Ws9lJa7steDd4VW1LU/Dhn28iNh
5sCl4Rpd36M0ZA7OgSxhPPaiTthiCIxzzHq+0Y2kJUCDBQE4CgrTnZEXswA4
oKy+FjldxSf9aeKZJ7y1fdeT65TrGoUvHElcAPdE9twgBBkYgSzpGv4ExEpR
D+jhRH+rWMfUu3tcIc6lsiVR2nrCe830SUwSlWhzJXBNnoBMjJ7IEZUtsE/Y
4q42xJK2To9lWZ6L9uroGawIk+THLvvqMpph2HMM6Lm6etED0RC5B4dWYsih
foHSHnRQgziCVp/EZXiYjtq10mYH2cYcWE5Udw2SSvu+gVRA3wuE2IYZ+4zI
l2+6RwBE4JEGBLIOJRwuhjEO4jSdE98LkurqEJ8VQp8vsnmal0Vqmf7ZUwdT
TtmK0CErRFFhQm55c26tgyIca8ueguPepdBPG7lQVMncPd9Er2zFkwmbJo4X
GB9HglczYpwGmgPeNLq0IB4R04EOsHZcVzaNRP8G2TOIEm0NVjey7hgQ4lAd
GxiBjubAo3q0Brr4mcNuyPw5Zof1hXZYk/Vj3dukqDNvjGwIAyslxMHZQ/XV
00c7yJ1pAYipXxYgq1HbA9ELYOVkWog766unuxSeYNwkFICEQoDORPDAxUQb
iv0zBFmC/JyjQzT7qpy4JxKaxW4VBIalx/7Dhw8/fNDaoHRNi88CDKYWoRxH
Hnp8Vu7XBn/QlFFQ0bmuewqsdwwF4pSPioJhRvZQOYzgtcUju08J0Tp4sCgB
26UDxiyYmBOA2QxWvbh9AFZ+AEwi4lNhmjeeKuS3MNRbpi8OEMpJ4SYXEulr
caDNx5VHCo4a5nnGnBMKssGQWsQljONOYJiFHFdbpY53Qpj7koxmn4Wo+pLf
lFQvWPAoBzZ4Cg+iGW18fXzgnIizwHcFsGskG2GsbVzhbmig4VTDt8jKcedy
P3quyNowAwLmAvoFBcOw8S9xcdYpf2hOMpBPR4XVkem4jyb3ywJPCAUPiNc5
RSYiLw8zN/gRSQeWh48ciQ3i19dgAUhohJiHR+evxdLBADdW+caLjHiDi/co
NxadH25AaksAtmUuZ2yodyJ22egfeCjWFFoE+RtXvQYYG+JH0Yxuck9RgDRx
tbH2azQwe4zDh+l5ohu4Iy1wwAQJ/VCsg5qBJIl6GP6APBMadpX8AQQW4tf6
gBAICpAcBhhNixFFBdKr36WAFlBH4rEx54veGSzy7CCuEDe5WzjyJ+S4fGA1
03TCZKKPckZaTgH3Xwxlb8sOAjSzCBAGh3/rzmFcXDhZrtJCaWFBwW11WuUX
TVEAHDSrFd9O5xstIvDICTOHYBIjtkJIG8hCx/UN+zc3jB+UwuOznFQiHfXF
erqQdR7Se9zQQSaCfCN/u+F04XEaV3aQyEA5gcPThk84XMZvFOjgFTmy3Hz3
jh/0+AEeqjMvMB16UygzO4MY054PJa20c5DXM/2IG9EEraCdMo1gv2EyG+q/
9eZENRzeGMPDYM6uFCbLKHGdRo7BXiXBTWPPblHomrhVOJJSTH6tjaLuSz7s
sUjqTfPdVincjD4DMYmMFJNuiI8M2Ydh7Wz4YxPNc2oNCorZTjFFMVBPgzBO
OYBkk55u2WNoI/glRGksbk7roc8XA3Lk67h8u5RaqlK89TSaTCVyBoiBDpRh
SJx6WgTO5t6M+mG/60Q3cpSMb2OCZR+w4w70QsdZWjXjjFJjwbIbh2gNjP9C
ExuynV406+lWrMCElNPE0rlwjrb8nnxDNg+H2BE27GEbItv/1/x0mJgPFGUs
MsXpjMWeiVHp5W/xMNiC3vQhZ7P8odcr+djezUdZj7ffgfemh2cZ+Ydvqd17
bio0+KX6hyG5n/R7+F+/33e/1gtW+7myn+O3RtDCx5ga9pMHmA2sqgEKP9ep
BejQwcTc1iAznHqbwQ8rEcVtFo5Ln8V7zgN/tvqL/VVf/JLm/+E8UmvjrA28
qgyvKkOjyvA2fcGnO/5XdX1XGlcwsvw7WuBEEl/NG1UHEjsIPh1ItYMYH6Lz
XFWXULkvSFzAukWjnyrv6/DrNdb7Ffkk9IH/1Pai/G2DIsAjFW/bUKij4QD+
rllFRM7e+S33wT1N3wWk2kH+XWhaNCaXkCXI1mX+qkqiFbxVkFbB2JIvDE4q
KFU1JGofx27ipt+zKo/d9IVDog3zqgO8bnbLv/NItGGqqkKinwSk2kF8EvVe
ucvhvSiTaOmnAo/XuJFEqz/Yi6OdvTtQX5R1QU5B/tPGof4b1D4KdDKWyIYY
HdXIc/EtptkkSCIOh6KTXfQtxRwHc6BVN0UKWtf1TiCr7zpuiL5nE5JTjxRz
Mar1+Qfa6OhJiSn6Bgw/E8hvfHAmDHVDnxRv8Hktg8KRjfrACeEELfbQxqaW
jCg8bJdYLAnrDRCg5MCe6G0b0bSN3W2TvbEtNgT+29O/w5Jsc04M+n9L8a3G
92vsMUk4qh7qUVyH8jI5NRZJtze5saLNk4bvGrVBrud00On01JGeCirdJYX7
wALgGnUp2mPkR9Um44PcX+5+h1PMZclb9GMMM5OeqhtzX0gz9d1U48FNX25q
CHfD4DbAw6FJxmXGWEUcHetFPpB5TfBs/YDrMYRZLnltQBU26S/nyYG+n/PQ
YV2jdFFM0oZGMPAV1rih1gJkqblnLmMUSHTN1jLNBazIwjnnKcGjUVDqsvJ1
NRCNQKOsAYYt3jswSQRmVRI3jY4z3DFqQsxnzjWgeKpbOvTB3DaGK94/MMkM
LXsTF0elO2JfnpvE2p4Bb2uc8njB9r09ZqjmbWCkzQ0fdM6ADUQc0NJXL0N7
OMMZzMIcg9GIN1sCXwywEMk0tMmLfOrInmPJIC379uXctupRF09Ua88SMyB1
bJMXOx2NzG0WldsSQ5ELq3B2h5deSEeLOC33nFUfvTqxgIdHL5A7y+rRByEn
rsMq5IW6QFEBg50jh31uct7U5uLi/PmWgjGGb+Dz4zCJgriXjnsmnvM4vdwi
p48YBHjCKWkGmEaBUQUqQfcGHVFiBueCnFOON8vyUqceQozrMpnWHXH7p7ze
+bbEp9Gh2qh8hq02c2C9uDB47vfhwxbJuTmdxVD6K7MRBVNyZ2QCYANy7kBb
dFbFkY3lmYUY6RXls9zmFEtf4ygGcHTUH2ITPZYcPLH3Ffo95Tjrq52HdIJG
iRUUHkFPtji1ughjk+aDE8P0wSnAhUskHTx5sme7e/R4/xE1hlk/+06yHy/d
BBrJ3Gf4ct3Lk6ePHtle4K/HPlBPd3cB6K2vKSqd5ip1AEZZhD5rb11NrhJp
CXz4RRK9r4u65foQ23cr1SGfx3+8+5RmaXOqcIG/45MOyre4unqBScIcg3ym
F0Ztfnd1eaazPB/tMK5qgQxLwBjV4kFeji/AVErs15KiHJrnThK+FgIIGKzG
9+lcvaADpIiij3I89pJR9QY2J/9cCgljnnXklcmy9HJ/4ig3Pkb3BU2ysl/w
1F9UkiS02Qf4hw5h4xba9dp3+BNbF038SZZT4noxXJhdxrUS1cRPO/tfgg4a
wk+rG9g9jcKTImDZCLYcqehclzL08d529nabvJruNES+Ws92ZTreinp5eh67
PbodAgKBq44wzBjPi4+Qg6rNo4ujLVN+Jko4VOQsHEVBOb598+wQPpWEy9D5
+q8vDl+qIphgnDoJ7RzoXl1HaewkxnFIxiyI8UCIDtnxSxMTlPebELNfQYyV
PaToLkcJL1Y5vH0xx9JbwcwctgI75mMGPPVLOJzQkrbY8KTc6C1eyYx3sD0N
A9y6LKQWMw0bx2B4seTyRs4AbMQ7Cj8OqzCPpFMsWFBMLfbTucQP1GFZRrFo
3urXYhJpjdnvYi4BVSgcMz2olfJL1mlWLHp4yo0JYEtXTAc9afCIXrhlXk62
PLt6zScSdg95IaFuiopNjaeTOkpVmaPoLSQXFohuQjFszuAgZy5DObLf7+8S
Gvf7ezhljjrZZfFjPnrYf0QfPdKfPNnb2cGt34yZooh1TFULSka+rENeMPd/
02PSckbJYyrq9bYv/aFiSV11FYfl6vN0N/GOUjYOdO0bN1jLqVRTShF+cXmu
kPK3nc9FIu/sPZWIy3keLkYwCtDSX4+O/mpF2yNKLKPADluIB5grHuriZHkS
AHMy6kmkFDzexjlzZAOa7EWaKvIKYPSxE/JltryYhUuWIUl7BHqLNTCJUiZv
hDnHLWuNhs24iSlidkiwnHSkv6hNM6HMTyeq2e5TjNySZjrWbdnEwmgyHaRZ
D4PvY4oA7o2DKAbZ3WofOhuHyqEQJeHMqb9riuOTZBrKTujxUWow+idQAwoT
EfG8ybgzd49J7A+HU8NXCWbhTmF5NzU1P+ZNhn88fPJ4d8l20k6+NjJBf6sZ
OEeJe6x6zuErVnrIpzPQcbNbG8BouprCMDdUT42aYFxOcmukgYEDsafNDSzK
lNvENO7QC+DA3AH/CF2yKc3sjS+xpOjYdJCeLuTg5ggYpRSooUeVP8qakQSX
h2+nwSI3efjlryjdjeIOf1iECy92evPwByzsEE9SwOR0ZgPZpHThCZUuPDal
CzcvTo5R76WKh8AZYLKiYuBB9zFM4hbUkhR+0drxk70nT/Fg+rQUind2+KOT
3k3+DSrhAXyMXKDWbSHb9WfXQfozKano3kt00A8nK0n0EMd79oq0V8080Q7H
yim4idpky3pj+Wk3nwdssNF+xkb7uy/86BE28lt2pA3/GTs7udUt6Ow043yj
Guzy9ClGFrKIldZZSFGKnGdP2/Phzp7dn08eP95x/vrqUdlMfPrkcfnw/49H
r45P1LOT705fXn6DJl7LGf3Zpnf3cRobHT3DFo3VO+AQNHnRptRuf/frDpeO
5boLG4ssOcC+DoAPBLP84O0sPgDpiK0O3BKgf2i5Atj9HBAYvVX2wOdrZGW8
Jqq0IgSjaYLPv6YHZg0Ehg3Mgse1OkB3LE7O5jZc0dJiuw84EPvc/yX1urHt
6cnVc/Xq/PLwb9+pzXWKaG9Rr1R3YFhwX9DF38LBAfxqqqECDKgWvAkzWzH7
ZqILZfMEoBnmx0I7geOPWJi2SA9KFbm/6fD3uniCKteadn50F0tKSle7ayog
XdNvbRln3eMhF1VFAMuVm+tArCnUXO2pWpm5pqtKmeTqHOuLItf0tazW8Te0
9lw+YG5piVUcpziHlPGxNCkvq4FlDIVbPYgeHAGeuTDg5nCL6jkoItgrrIpv
wrIw14vCryUqlqsbUAdc39YcZ2BNKZTK6OHDbrFiEGZT6aoUCq1gJ1eK/WCU
Fq3ydJFJORYMiMyojhqWbCZTUIpJGxctzNR4ryjw3Rob80WWYyguyE7mjWC+
YNFO7kCXKwNFI0G1ClP4dXkPYs58bnUBqgjaZM8uj2H30LfcHvXhMcZ5Isxi
mIBdMjTxWQZ/D3L1IpyA2nKOYopc1xoHcaCLKNHnx5LfI+839famywlCpxi+
QN1Db/KWRilhO5QREAzqEyd+evjykOtv5OgXZuowPvAxFu6TZSxsztY5cuOQ
RDcWvIbFuuVbAErA3dzc9CPgYFyln3QsmsM2cdi56cXASeSrxYGuBFLymevq
oMhysSTJ14BvQXwhtV0k74mPBmDqMeEYdD4q+rhBDF+jwy1Rwty+vKmQRaPf
PbA47G8skQMI1LqXW1SPgc31FVZ0bH/JOvdzORqlv7bxjRyWqpqYumWT0s5H
XVyNYo2dU0CbrIY6XU61rSw4etBSvNyaA9raaa0G86OM1hyL6rhV66RVR3FD
QNYcYxKnA2vSLJ2TXs9TDoiK3BXVQVJO6FQjHMeG0duPtWvB1v+qg8CMoo8f
eAz0Ndm+vm4al0k0d7p2hvUcfDmdEmsid90BNbCEnxYUSiQxh2BpSyDEkdqj
rJrbNrgnk0YPqgvfcXPN3oTBWazbE0DySrtuTlZIdXwp/ESSVs32qcMUKX4+
p5TccaW2p25NBYipGkGUTDEVnYpgSG10LteiK7pJrxZom9nizysqH5YOJJvW
hdrQNrzKiCRoFsTZaXE1NrpacBuQVx+x1lHy3KUcfxkbyedUt6YU5PPy8tUO
c/3QHSiat+0c2rXq/vEdu3/convjrmBDfB3qXuLRqN1Hv8zcefgDN8/JcFab
4NjS1WGoR3s86qCy/pZPChsloGG3NUyeLDagYYfHT+QRDh8Ne5pHNa6G7sJV
3rUPRWskcRjYI/930pIWj4xm+fzxw6/lVXUYGOilST3SxwrS+wc9q3rQexi8
seYE/JgPZyaUG+1178zQHehj5kf9rJqdHPO1m5ZfjLN2ebz+PgZ6b6wl04j3
ejqU4y6TaLNEDMJnWCENyoqVivdXT7EclGT8j3PylleZpiIfZEmIkFZoJoZF
bTb8DzaWzkxrKtUxK3D1TU+E0VqVxCDXiap3Xi0RgxqPzbACtJfuVR/1KLK9
VHcsMwT9nTahMxNG9G7V+K/lw2bUrB72Q2V4OvlvB8CZ+fTTgjDI0mBUAoEO
fDZETeqhmtRLsx6aspv9/ra/hl3lXZv0B7XxwE1hAu3kwdaGRwj1E4Qpvkr4
Wgp9pqvVFHeCKwnlmZnPx+OpurvpNKZHm7Fxdx/RN3xM3gQD9cA1SLwNHI0M
kLMo6ZkQ3N2lW/mIi5ks37WgcZd2KqeNfb0Ko66e0VQYkefiLqdxwGXr7s8q
1n9Jlwg9GL5x6pbMbRfkRc/RV8JtHUuNztiu8WZHPKZdzj7PQT3jBVwGgMzV
kk3TFK3Ot3KytlDO726yNWRdJewm0m4kwFXkXUfgDSS+hPt4ZA6z5GnUkbHL
hVYxEsGJe6DoQUnIwacbrYA815ZSExE4+KiMtUJA40+j/VGd+TI4PYHt1lOg
TAkPVLfD1cjUXzfx55WqFzqgV3OLeM9gpnY/lGPUG7a9VXfttveG2W8zTFVP
LA+zXzcMvQJO8HUFSRyR0APosrerlNQ9GxBMKrhXqm4JBk3PKzDo9y7eOn8U
SyANkq1kxixV8huZjFMrJh2vCKh0ad2JaxVPI7WtCj0CdZgNezy5TwmtP3QV
bG9vtgjxbABeQgl7s2D4m4GPDsnW0adeAtyhvmolVSfouUwwvyszv/dE3XWb
gNwM5vlCx6dyPhUMYKNbSYpKkaAVWLuOg+T3gDYdhttvwIjbrIyceoyYwF5v
xNaI4a3/KTGjp7oOhtibLWGPXYrLsrejHJQjkvOu25Ye9UrhzOVZV4WV5sNL
zvu0BHDDgD8B9z1y87T8MVowvbvFTtv2y4OonRuxOG/OZ/Zll+KnoJdVGPB4
wrL48SauLwHen4T1a78NOfCrEOuC5rQD3Mq57iSobTn6fEwlZOxpC/5IghzB
JiX7tHVOqRcYFeDA0We/P5b+dHvBzSQ3YTEnKpircHhoCQ66swq7cXswt51S
EdqiPkOHwVzBbWQnfRZG7Aftl+jInY6J7mzkN6X4f4nmd/vQXwj6QNWOR3lN
vL/pSeobuX046QP80TgGNi4XJpA8HUSYs2C4X82a1PE5z8flhPuvwZWaKRsQ
F2VuMoALVjktIHgbzYC2rziLNadAi9dJVICicPV667PxFq7dlJSPL5bOxuMy
GmF1aQ5yeKuvlpO+3eZme0giIRWJMmmIfrhr5LU069awjXRqBKfiAdX2bDDT
p9xTSxHmJoS0xJoJEKtJ/iizqlW5IJUVQBZYx62MTDtOkweFeq672jx+voU7
iwK0KPipnt3pPLMSzLm+qELD1mqtzKz0qok+83teta4/Bz9Tx2eGeENWMozm
uvKxMyC2ctHFZWk9BY4RjJWla5a2Zj2f4/J5+wZv3quuQzkuSyKzvnq6e8AV
xlHn1hfTdVVdhpEdBVtiQk9t079KsNpjvBj0+vGWC5z+8fJondFMqpJzqqWd
SDYl6c5naOvQyNXVCwv5JmEfhAEmF0kSk1QlgE9trlN5xrjgmqr61Tnp/J5P
NKFKiFHtzCx0I4xakGrO+iTLFEv3754BYs1uRdd09OeabKKyNHCACMaFW1rG
S9ij6+VAUsn1DJTEFQcDvsVznuZciN01CotFkuDr0DEEt2yKEBfCRo6mh/CV
weVzLE/NwmN7iNP0zWKuJG+pNmH7gVb2qOmDOhJozoS6M1WYA9WlBF7JofLc
W/FI3SWfylmetRKrXGW/gYxK9yQdXpwrizOpemk7oQ1r0rbYouiql4JtCjLF
ahu3K/p4XO3DxPMRZkZmBYV+PDG+SKQQK1fglvBlLu9v2vGlVWUEaFtHX8xL
hM3cQm75wJrvTnA5QWo7mWJxeZQ/zjrbdTX1gVyKqC6igTF1FztyAnmRwy0S
c3zj7VA9+769K61CiUkqk5I6HL4C7XGomu2lGegDM4TD3creg3JyHZXY97et
C7vsX27zwErUBkn6ZO8x3mBnHViHwlEvLIGZi197PcRor1cjG48ogZJ4z0up
G2SaHRpvH0zn4ZN+SfTLTwUCpGvP7kgtmDXtv5eEQV/eY5bjQd0GkgDB65LY
r7I6zQvz6FNJ8CUCz8TGud4i5vOXISu/F8Li6eYj2uublxcAOewv+sBpac7e
4JPT461+w15lvpXpi97JMSGGD6n4tpSDT+bQp86oN6WyZE4P8joxbZvztqHL
rFJdAQJvUCy4fBRC+7UuAyU6OxbWsB3UMGmdLuJUniAoL74Xfd/FqUyXblgz
NUnwVB5QafVVDKO9k+LBzMGjxmYmYL/BwuiXFz0U211C72phbRs3SO3mrf9w
Z++gQlaHWKAJc0gX5a2ECYnV741OT7oGJUecY8pBqe1Xjx4eMLWWO/ie1Rwg
4u+3So2ePnlcHbBC98Jv6hR2YEFYT3mmsy9qNzbra7+NLluAhHaVxnpqOtUF
zV74qtxZMAe29eJsi4W4VmVzux4oGqEPxF86dkjFEt8qKsH7yg8URU+ZCt8E
hrqEped8fZdmHB+bzpgCY+xJY7yfceL3omRJUNCploLLXfifJGp2lb1VEsx2
wpKqXiU1zn4vua8/E1g8VhmoasmdWRgktlrR4eXpkcvp+KpHfW8oKW2J9T3D
OnDifpctDWfROfKB9M1ZWAR03YWt9UZ3HnJNtyapok9DKD1etGeHyzuHHxVp
QJkFhdTmMrdhojQLRqKvrqTDvV7R4lBfV/VrfaJUtDzPNx23CRf4fOf3fkBy
mwMdtmB1sUOTjWU3wrKtvxrl+58L5U7HrQ4Jf1/HaHfGejO+T1qit22MTztC
pmgbN7Cm4UXx9uNCgVqusTfqfv3TRlgMj1wKUUuJVhkVem/iYVKSz6zMEgYm
hd54cZZK049McmjPV1ytSOCrEaXB8FPpak0xSgKjBafmAvKcbiDPt5rliV6L
NsEJvBZ+Fv+vodqsjFz4FVahcWwBzi7DJl2TBIY8bnd8mW9ReVMfPLsNpdjp
R52Zunhwba26MJX2WRO6JpEVHjbK2IYKa/hXxxw3ypdqZ8viXmtDrf1jaXb+
4t0zn/IEoBHvuiKYnVPg1JStoctsPv7cMKEt7oHUWELXVtCtgXSUfj4DhdJ3
ORrb8Q22qOFr69ma8lK2vZ+z2zPH4dNwkQl9kjkhbqdbt8CVA4UNgHedx3/j
ap70OigKusY9N1fVm7uzE9zx5NYlOrDtiSC6kvi8rBjtA2BdDzx/7wNLzw/Q
P44lWMGGx9QcNMWrETKAm8i1k/ngVYqfk3eZrs6EmfjXsb9J0pvExP14fgBd
qbhZnpg5NYqT40+ssq3QSD5VcPYKsbc0RtuO5mm1DSMu12w9RWuJRLldPsg5
y/1SSnXTaNxj/Wj2RvIVEqwpj7tpUC9XZrn+0kxtLee5PvG10kw99IHC+5Ek
2EoBK42534Q5odMesL/e6l1r8zxSurQjriu1v8zK9TI2mgTG8gSIpTurNIWG
EZqYj4ygO2nCmS0es9wDSNVp+LK/Nmii3KEyhihlyFQiMXCuiTgW4qWaLviz
Oom3VAXFIr0JDD9/17ZvyAysWU43iSq/EyaaF/h3jIlVZFe61LCJ9I68WkpN
BRs+mtYo5nFYM9a/B7KXJqR+ChKsXYYVfrp/M1Qt0TYaB37p3C9cQzurrPp6
oOq8iB+kvujJy+PLb9yyoy1KsOJdwH751cotKa0qsGI/UkKOeV3ri4a5chJW
ANZlW4u1C77W3Dn8sQVY87d3LL6as3t7aeFVWrylxVdXYhv7cyqt5m8rVVbb
lIetrdaKj3/Fwns1tWEN0fQwXMoDNH+7BMAnFIBqS8PaO6NPzNVFMmrnvlLs
faXYX71SbOJFuxGbva8Ue18p9r5S7L9ppdizAPeCr+JEGlwuQpe/PVh9n3sb
P0TReLt9Hfdw+IdCwVP1UNQZWSCLxz1dpHVj+WXydzAKmlw3DeNUzJSyO6IR
3FLJXDMcmTWohi0H3q2ZQgO7dXSZaDhsh+dlSaZS+5Zw796TULKDkpoc8bXr
F1FEKHYkXM3eDFpv5tQhqoJrquW7As1+sWAfyy2NR7oIr5E8PsJWdC+c/sxm
ozNUnZOxwX8nF2Mvx7BbKHmFI4j7Yydc6/22HN6ltqXDR9Xm8dkWtHn3BZI7
qTVkNgLdH5/ZA6pcX0dcfy0n2IK6vK9zFzJjgHWDhosAMT+bru/Tt+2KZoUl
AM3NVWqvv4sbhO/oeEw3qpjEsRhPlSKvjx7nVWzq63alsNOWvSeKbkvFy/Fo
NOeWWDzeAp1zzpmWAR5LTWJzjdqmw0mcSTGn3JJbTQ2SSny/dAEz3V3MZ3Ak
m0thfc6FrfoOy6fmupMslGwS7XbLvVuQJXPp4w1x5dCB2PdBoa9MkHaIB4RH
ppsjM9PX0t6yC0WvddduR/idAw66vreZj/G7fGA51QHndprXUQC6MIcv0woK
caa2ELJX/nls79xyrumWUeN0EnECjkcnOSOZuKgB3i1ITeeNgmRY7bHkRA1u
uQR7mkUc9k9LOmNthW7Qy6XugBOXLwnPgGS50dZQgLMjrVXNLp0sFHIndJo7
fQYwjzA0cFnEawsjyrxNra9MI8U/BHy70+Vu7EoC4XDtFD4Nr7m71zBIHo8F
AKKAsg0YqfaGdiR/mEQ+xRNc4iZ0i/vI3uJevoqH1/RguYsE9TZNINtZcSCL
j7/6ipAOvfbt2ebv6NIuvKs+S815lB5diuEvV7o+fKtH4k50Y7ocvjcM5gHf
u/ylUq549BvJyF+qf5it9JP+4r1S/X6/dpC8toHSDQzCorFVK3LvL/zDhs2s
h4ySSvdrIEL3rNWP+q7Mh/Ge88jHo/1mf/U3v6T5fzgPDbTE1wDWaPST/1rd
Yc3azU1V51ahEVWdW/M3lUJjNdirQ049Dld9WU0FEIzVgcbu908LWsNQ5qTf
Nzary196VUMB7k8FrlJzt1oj9IL/1PajKls6TsIDEXQ9EXSm0uWyl+ttcVfZ
/ZT7+99jp97vuU8DWsNQ/x57ztFU3h2oL8rajAIyj8M/bRzqv0ETu0IlyGh8
G3JeR9420o+sOVC5rjEPh9g7ftvDb/W9jf5Nk+rCvdr83RfeheYymnPBrvMt
ZpvroLqSxqh9FTABOgCUe47ohnFUxJNc7lvSF62XmgfDDC8gH0Vj8vvhldHJ
SN8yDQpTQf5oyWkKNHTka5eXNlISa0rNotwr/pdwlY1Ox5v8bm93X3FsFed0
yeU7us6KsoFstkqRtmAZFgdBavehdJa7vXE+q1yESv+LJpTfihPgu11Czyz2
cL7LNU92Hztwas+CXKN00Ons9skTzVbEkG+n8cMMKxX0OIlyXnR1YkvONba8
+1LPXl9e0X017m2uMJbtVDrTH+rPAvdA3E11FquZjEYzTIRl+XSGc+J+Nwve
iBEJZhZl5+OhgU4PRsvJKSUB4Og8ZzCQIsxgxcTj7wM2SMwtyJT6zZXNnCzm
OQYWo9kTeRBIzZE5zEsS32QD+Ia+NuTMJSdfq2jsZtShXbMY5LC2sK4IISfd
kZ+iFs3a3OLIct+2AhB0LjjiEW9moauCc7WZh2Wi3Op39j4TfVx+/+r1i2MC
veCDJd7vNO/pbU6mNC0LW9XW4yv8QpBsEttveR59HapMj+T65tpRHNcSfWtQ
WflS6jR29vtYiQGrQALrXABQjABqyJRaXggg3TAq9L3slarKtD6p/7LkvNB0
ZZ1HRlOXKnbhW7MHdLFhrBpifhPolU0+TuWCqlG6QLcPAUzHiw/LE3T3aPsZ
7i+b4f5vOsNHlgVpMPz5wKbQK0GzfvmqZn+Zj/aJqIkQ8Ygs6LcA4bH4LiYA
P8bOm/GwqzICa9xZeusISAwQbFGKg49vWThQ5pSTMaPz3rs2GRH/cLpH1sui
FDvz7uYmgGFLzejMecBlCedGSCbYBcxtyHw5xXku6PKnaCYlEdIBnycTsFSs
bwJgLOLAhq/2O1+VEePW4kdIbcB1GSW0VEsQ8onQgJzQVOqUu3rycgLDz66m
97OAhmFNg1CXHzJO1RD+TkmG/EyD/Gxn3+886avTxFzsrZlRHbVYlFmXp7eP
7eQqO1pjLZgEyOTtNiRroSuaOeWLV/EPcolG7CPTTWouHHcTPLpepfyy3EcO
gAECeMhmL8Tk7rh6QuepDFNwLgpSJJU9IGWK6ozS2ktTV3Dz0GQyUomKsU9B
zjGdBmuRBLNBNFmkixyQNJwGqGVD6xxr6JUvYJcdybXB2ANrxhpwJj8Jzp+b
jNefObLo8Edy/WoVw2T7aFVCFzbwNWDUjYGcQZ7lW12r2HszRn+zhCugMru7
0xeKQ3PmZ+uOZY3JXg/BEQL6/EKIRxQyN6nfh4gPIo5BJcdtL1F+ew+/eoQ3
pJ+enJyoJzt7/d0f1PnRObzFJ/wA31NdjKsjafXo4WO6c51qaJXQAguBxe4s
uPY8BOaLpQy6VZq1qqnZt6ByGmT8aWNn46efdTWGEl5GIRV34sEAi7uaIIVJ
UUYUbpsysc9C0CmGNXyKF4nUehsx79aP5gJaY6lrZhKzdkEva04sMcEisC1i
Cogx5hEQMznorb30C97ux8lbI6kaoQKnYAhvboIoqGEBeHTgaUxVEY3A8Hi2
YFl826dqOvmCknfB8sSopLRnM7K6dja6Tjd3Z1VBe0ViaVGlgLP6mZv8rG2u
co/6hI/OSp3e/P3GpRb18ZEu82WpH9YL1PgGCAQdP8Oa7Vv+ZbCESJd5cT1B
bcqqTaSP8G0wo5KfAXJmqU0IBu48BSxs+UQmO7awcVoEkrX+iNjc6ogSQESd
OUwRQAVNUKdWeEpwKYR5E1bs6Pz1lpoGaIvBot8ksjvU9+kNJl52DVmXTNZy
V3QNF3W21KihI8Gb4BZ3LfMDQZ/dG4+qHBpZq747OGBzqrCWBB/EiXHMt6Wi
7WkA1Xw6kpNa9+TXtblxfamere6Jr5d1WaMAQTriSIqd8WVgJexwwNSBgZqo
IbCd08YbUU03hBaPMk0wWBwNMgzFk7PeR3uP0KGz+7iv0zibwQpM/1jkz9Q7
mqfzBZFRSMXZdGUyUd0jEbClTn2xyBzV0wx0ryM6t5/Boo5SrI4OXWppFWhD
ACc453JR8GwoQlU2Kh/RT8N4TufJsEZb7MB6nQcTDPqlXYQ+K9lQuQ5LyMXU
AJJdzKSKGcoUsVzGKpdcXFTr9fTIHwSyh1TEsVvkkF0vGDejXWuek+wDay1U
PkdtTNJ0tGGu6HMq8doyVTdUWtGUQzvodHrIUvQxmtC8Pdn504Ywlo2ftuP9
7ZoLFf/hP4MG8+uH8LWAsS367c+ffSBSntcZ5pc03/bE9F1grXYicHQOLdad
JXlcCqqzWRq2PC/V7b1dtVZa9nwsDh+vXKzPMVLdai0fh08bcDinxjLiOfFI
3XX2aVY+uLU3/Gp0i9oRvp0GCxbSd8B3+Dn2xmcYqC22zTBGL2u9S+7cnd4v
wP/a2Hu6+CMtFqf33GnFloHkGot0svKnDXPx9KdHwIrRLD+xt596jERqpgld
X5w/5xoUuojkr8lHDIS/AiexY63PS9gJgQNm8zHhVoSn74r+NGJzb5v9Z2uJ
wL3fnTxbnfRXzvizEWJrZPyZkD8d1dcyULAmQrArbZOwANtg3AuGsw2dIrj/
cBfdAPyBjSpy3u/b9xKm5bx8ii9RdecPGqIUTINH+zvleLG1Mwfvljb42XMG
SwmD/4dkCzok40OYwJNliYJAVwemIvYRdBFNFmzblcuKEay1gztxvN7Y0Xj5
yPsH6tBJUjwzWWCmlIKTbFg7sr5OwBs2K5YP+7RpWF3B1w5aXYbNl2fHh/oy
jq1aoBo2lw9krLM66qGEDXhguJOA90KOAvVqnUjc0X0i530i52+WyOmEZdck
cN7nbqr73M1/w9xNW/zs/4LczVOOGo34Gh9O1tSRpOYc0r30vWZGzzDTzDTC
UxBdZK/ioe9bCEwDyl7R9bekwokz7tfNiLT5iaUAksZh9j/FMPvLhinV173b
QE4p8yVDeTVY7jgjvTr6bg+v/oo/XLnk2x1HHDae3PWr5PmdTley1FkuOijn
yatKwh07iWRNxSLnaEOPqNSpPRDS28lE7OApljl7t7KOz+BNsKcOJdDN5XZB
U1XyiqRCThFuNAM8hMFjECoimxd8qdEN/mbBEn7DKaE9t2hR5VTdr99ZnyTa
tII2s7Oxwqd/7mY3P54g4HkYcVsfcN3vurnjOv5+o10S0oYB9A/cpP67DcHD
2qneNbR1OBrlpRO91rXxypkA0ieabgdy5N4DFN72gjh2yjCBqabGQZyHrSrE
1ZWhM0fwHuD1pfG8PbZm1voHbwnbpkWtWJ761PampakLKLNOh3JIpEafBcZs
u9/h6tWkua+9cjX57/6qLct88ffbki9XLGlNknfTeo7cLO9VpRZ/rwtXSpm1
Wpug6yPW82Py2V85x/tHmHgw0n4DcqqqYwklx53zSgoDk88GnRxfUPZCARxe
EvErs5fLbTmKagaq9TWWtc0xZASsBlNqmNMgCg6KLIU3ebnZTmyXNRhzX/HE
6G8qXGBieST5Wp7zHWOSdoEZyIn5i1KVecI2lcEAuTD3ePnisEgnPA7Zknw+
r0MJh+JmowngHLskhmMYAKykaXAdgWGK0TeZGJuwlBz/RMn0XXMmb4KDKSiD
hnNDM0IMhEPJ2+lcprMShKHJgVGUKQ8qmUKLCsPOE0lvTm8SjlIyYTj6UHNv
O3urgkF6HVrQbyKwjSZhQlVibyn8EhU+F5dxmudSnRqj9zO5UTPkmDF7fsEH
EH11Gc2iOMiwKMHV1QtzUa2OQcWICQrHnTN6KEgIE80NTBiapBVb9FSFXBYe
k0kIXaMomCQpcngVYFVtUGB0rBSGyeTGRh+idheWp4wAmHmSXgvW5oS0xyjP
Fxi3RL4MSd3R7so4xVsknZA+d9WI8cCS1YS3xZTpE84BmTmukqFCIQQM7maO
mI7rIv8GISInMNtH8025LDoguHk60OkmaJKFUCnaI5cvDrv2fqatCvb1lqVr
lq90qFIpOovwF9SP2HUwPqbcB8CAxAHqUbp6WIeq2Gu0yHUQCi1lWibdZqOD
XBgDeNcLx+hosfKkWp794w5QObISQ5Dc6NMS03IhkViyS6x1b6AVDDhcqZDo
as2yxiJeMLQXSZPupMNHM6Dihb5aEGeClwNHmjJczvYg5wUnf1nidi3lQWgl
sQV8xskzwwC5yjO+2frZHsf/SDkFKoDhbGd2aN8AWCc8080XJ1s6YOvx3t6H
D3oVcA/pWzXMhIA3Ulx7mEUprx9+omB7xZK/prEUDDFWXy5RNSjqahediQu0
09bcVcxgjlk0t1p0ywHu9uwfk+tMR5wCQaagjTXVjINeHv7AKX/m8NzJBehw
+XJ/zSl6wNC4xMVLSV7a/cf66xLRimHsR1TKRQWlizfyLcvQ+CYAuoFNNoTc
JsusTsuwbIF30WI4mPu03K/pw70aNyXEIGMLRhJmiv6BuXZfosjTq5GleOjY
ZYBkcYeinRATsPQvY3Yrm9eeowt4P5eYxAmwGcArtHAvyjh5rklzf+/hY0ua
SOEINUfKYfynC7lArGFlUU8rFpuFZY0i0NgCWo/R2wykbFlhBZPYITAySkvT
SwUbnJAoPuEaDPZVHU0l8Ak0iCnsKCztdDENnTNBUpNYXvc9PZBnx0cApWGE
YnOzNaSikCHbV2bL5FMKXIDJaNehP3yIXtAhSyQnvYUvYNU1hKJEshYkd9bc
IViZipNVa64JNfPXaCOd9zicx+ktsU0kEaxJgzWrvgjNH+WAShGeSBIojjiH
L+cjionIOPT1GEeU1iP5LEWScIyTSbJ6H9iU3i5GAE8W0YiEKDunOTDWhGlm
brgutOZ813OTFJyOC2RtpXj8ZTe32Ht0QR8jL4/WyTZTufXUjQscUvLwVtcc
7IjZdnT+mhpnIUCc8O49PTo7V1fRDMNVuR1Iq5ziV3nvPXzy5CHWbLKB1bp2
j7000uwkueCbRGNM0NRPDZMbSiHeAJzOf0BURsMIswaoExbQLFLHhALL3pDK
KKiXE2NRCVKvEop2naacQFJK0PLPykxQPnbLIZVdDDdGZZzTamQAc2W7O11y
SQ5Cye2WJGyZF02Ic/IovWaok/FwEgGxEY47LKeJ8a4AeP60i8RGjPntrVYi
KDmWA6rNdeNmLoFHiNJTYDJI7CVJaM3g0Y1t7AIYGfYhmYfJLeKGFsXpJPdt
KvamUoKDFr1YH8qUdLpD3JW9g4dzle4QBqrvtP2ZMmm5UBusB6Z+OMShsRHz
FeD6junaS5TwdjFHhkshrlafCoEv2xpLEh+AKT4E8uY5cHw8mOeoY7lHP0GZ
e9P9NhKyjgTbKUtsphsrhLYkWcf3JOhsogAMBDz8BVHdsYkiFb2IYGSGQikv
ojWjgEMdyB264/oAzHnIjLI6NXlhG32rOALnz5EuROYAjEE4TsmfbUQH5wvz
5bWcnocWN7k14C1mdU3oYNoHC5h01injUj7GEmNBpi0AHA8PPzHL16ZEav0U
cSCWQiBLNQoBTUb08SLy0YEcfuhkVrRNJAHFkbvGx9ah1ApUdoqqs8YUJyNm
RvYpWrHhvEu4TaIZykY/dQJVEy4Mp59Tz3gddR69ZZl8mAynKZkBVDvTVP6Q
ShyVgnPl5NPTM8y1ILZKlebYcvbsVS+hDlaWUgENvsRdydXoSre/+M2BkSfo
3iKcZWR+YqeaHxGswDtSWm/0GDLBi8HCoVAVxyY7xmxmpiknEnCHjqOgtG5O
zAZLlRFycbPjT89AK+Z0nIAKA0q+VVejzbkG/A1l01D2CF/DDHbhQoqmVmAj
RImxy4iBgVhpaa71R9lQZVWO+vcKugREDai3pfazEltxU1r1fWhWNmGfSFnl
qi+X8O8i73ReppxGhofyOuLGU/lYxFIK3CxF8SkcgOIhhI4COtqFLvolfVEv
P+V40Yi4lHwlW6nGoKPk833n2p9DzknsU5fz5CFl70RcGHee5lr208d8z2tY
9I7BqBFfYuQkgZHUh0ZUQwQ93QPeQoiGr54+3OvzQabjBSdjqASy9tQ6uHLL
3OBmyQsbzkJJVcglhhxVoZUq6ojSoKT2yAiBzmVZYE+AdkuOuoQWS9NBHJk5
owbhZIaX+A5pM4a88SWaEah5MxMS9y/CiIJnkaEOign9mGmrxGmDmu0A9zWs
A2uXjkHj1r23NSBtSZKbIKdsNFJeYThCBwlfjGDC69ttnQeuf6m9YCL+ZxhI
JVU/ODV6ofk+MlwgCpCbjArt06gSWCYeYJ3J18cIEk7PpDs+RxyrVKQOotmV
We4KOTlVE5WKSs70ObSxlKpYKvtaUxvXoNfVL7GuQkBqMVM8UgGgAeU8cKHR
DWnmxvAR62qcLjJtWXVFPgCZgJn0pXqWgTkN8gP2eEY8q6uu0lkwDW7eqF3n
933n90fQ7gil5oH6YW9n5wX8+RdQZsD8OlBnf++q8yv4zw/P/97BQ+8MxEQM
vb/4ii1MG4tawQiHq+LRDpAFqgpg0SU9CV+7fHH4d8V7z60wXM7yPC5h1BYo
5mrDAijAySq1Q2j+FkFeawgnKAhZf9QhWhNgpYsBBhFupz0TRNkLbvJt2qk9
ipDlyE99LiVFWUl/2/6m0zk3BjOXzRBC0gmieZVc2U+rk8Rpeo5hTrW8MHBu
kaFm459ogQ2fy5sPDQRqv+hZMlxBpiaoX/NiintxQ8/44Mi7AIikni1VDEpc
Trecaks3YEvL0XA1YHzakCvt2BZB7o7HiZ1WBbSus36ri4103oLbp40CFUKL
TCgZnRRIaWA8djRFh0ltIQY9kuIorhwYcDlmZn3MUHBA7EFiCVntEQDgIwnO
Mzxbsm2RzdtyuTR77ATHuwGMsSe39IE+IsZInlGP1E+qikxHNRfnIF6wi49Y
FGy+1rooJdkpAqD2m9oSztYr8BHlqnEccb15cXt+6Swzr6G3g/pl9uXsl0oV
dEf80/MYBRcaOKyihLM5ZVl7ioatXL7f/8rWLn/6dOcr2ttXJYzqHVdmdHZP
1kYv893AVHXOlPyQ84NcZ5gTG2bNaGaj503ckbmUuCGj4lwrbJsvT66OXr00
buXHew/1DWAXJ5f0Sp+F7DzckULlebhqfLW5i6UIrkPj6uFFC9mNQCkKFAOp
jfBLfns5hZVQm5eX32uAHu49orIjVy8u5cnTJ+j5ZhXjh9enR/rxzg7At0WP
N/f80Weg2gdU12KKRCUaPy9Y+5QTQNbh0dmWlwilj65zfaiVkAoIxIqegUIW
TQLSgeKHVGpJkE67WWMZ4JSjGgpVs2a+lZ7oIbMSr64To4infoYFOSCSoq/L
jAuvsCAhh0Fuj/c5G77klvmWk3uTZB+MSl8YxdrdAdXTETsKlhJYxIlUXaAo
+Floi7Yn11GWJlLNQRw8dLbKGS4c5G6cQQiQRraQFG6TCSb4w396jE8pnmSt
vi0RULk319ItBIVXThOWA/0IYh7b6RO9OWusJ0pCaFvPVIpXgK7SGAy4PR9l
B7WRQaAZumFpyz6kSu3N4U/NTQ86B5r4a1Aj+ZxZeB3SMYITCk7WNqKKLyXP
ucAhuvbw0FxcJ1xBEY87u64zS1esD4thH8ePc0pfkK7IqZxS6H6U0FGpdgzy
o7Ew7RBng5rWrZBplOkb0rH2U5qgpUzHaGz+SCRFOt5i0qvEB+m6keR7Zc4S
jP65YPPQdo41n4pwcuvV1CHzHXMQKloeJg6AFKKX4lUOc9GVOOtA5mNp7vXF
qfF6bST5hs1OcIpdcorV389egIHEbzdYPAvD2n/85MmHDwecS4mCFnrlatDq
7vcesvjGXmRQ3JdHnKx1wPb46cnld6SvAGjw6OX24demUAdPHABhxwlBb/Ir
We1AKD8Gwvzt7xi6zwUaB9BB03WozLthQxOVVnolN/kljuHQH5PW4509kL0e
MZbyaZwmRJMOGWKXML22dIZB2nIejU4JmN+30IfuiOb/Can6nJIkATwb0chr
JvkxB8rk63RaT4ZJ8teYCI/kTULvh4+YQFvoP3JjuGA3wsyU3uv11AC6wmR7
OQk8TiUVKVffYT4Sn1V+CwyYjo7l7BIY8Wt0R5NvGTcBnyub2pJZ6JxeUW1U
raDo6lAYMZrTuV4s1bGA3kGDK5y0EIln1C51G6wQzNGlmdGZoC24JmFjqPeg
/4BCcshYmINKSdtdDplQzt1IISk8Er8tBySWYJfjackG6R1enh6BpTDFcxsJ
EkMGgTkaupIrn6UAPFS8kqfs1aRT15iuqM8Pakt+y/EUyVh2NphgAoSA7g/K
TeE6W86ty7W7TcgSAUhYcwHostapMRLF8YIFci6WIyXLO0WiYaknYV5aaI0v
pgo27XVQtM0plbOUW12kz7lUzsaYzLB8pxvRgcdf2SiW4JzSCYjxCbqTwrAr
AcwU8WO+iqnFbqk6eUwZpwdumQQVBPn1xAZy1/z0e/antl6++XmvjCWk3q/6
EsM6klC1+dL8vvTLBwDfH+D//w/8/0HTl+iU++/D+YL6fQ9SDv9Y2q0Gwg7u
IsT9uRYA6n4s4t7XjrBi/I4eF/vveyB4f9W++oMZX4/93gPD+6vx1fvOxdte
75vz73/cPjs8gj6/UadCdIr+ekYbL+c/TuQN/WXafKOu3lYBOY/mHJ1cBaTu
FSPjgczxgf21/Ffjqwdg35oInNfm8J7EqBcwrmwwBP5lI5SV+6p4WyWgahTF
sm+cgluNn5nrOSzopy7g/o8EggTDeMmrxmY6SKf5VWPTbD5ufGdjUjrl+zJE
fOlrMk6s4GIxXSOj8cKMyzB0Q3aVEzDKQbYcJGxTBo2IhTak46ZpoSi+k6VR
jXRFXUHDc0mte17dU7CD2fku97C9+0LDw56jkJIhIpB5wtqxbuqMPKxOJ87h
N3kxhxjDpa92KwNfA7irIli94AqdJniH4B8BweSsEa+d8wRDlyfoadGy0R+t
NFnuW0PmHLuSkaDraJb8oQAaDDRj72dLkEjY6drWWsZqEPN5HNFRYqpAzbIX
EBTcOd37R74nCg7pq4v0JrdxEBTnf4RG/XUQL1y3cZ8xVoIOb6ljNcHURfdx
1GX3AqpFtCRdCrmTOuXit6jpes/r2yhrOknCvwGDdbhCV+53yvlWMgvKjnDd
c2UZ9UmK5YHfbkDbeDHjA2+tJAF19J3gKfTykEPnms70Ad5C+1JKqfNYEF3i
SfnahrocCym20JDOxBuDDsOTcuS7TlAyKR0m0YVjQwNJSOjapBZ7IYVeunKy
Un1ukg7+BdPhPdPOe3V8enl0eHHcO3pxeHmJf8u0jihe3L6/OLw6cf48fg0P
Tl+9BEn2/oAEkvxjflb8XX7d6x1AV+pkFwYRRdAE+W17Au29ej2HFQ2DmROy
Awh7I7Fu79U3zwSF79WrzV2gvi0EU10t7duTYPDhlc1ceq/++CfdJfxBfe2t
09eRk6PkgKcIvlyg21+nxwsnq6napZnyOU65/59f6qBK+BU1Eg4Wfy9zuViB
Fy39W07kYgVq/O4ws7OybqVZXKxAjdPjaULBgHKNEfOJSsc7pufTZVM3tSCA
7JnQ+MUSSJ9hf2GpO6tyvXfqp9dR1bO9dZo3AXG4FIjtft+rJvmfUk4y+GW2
8Z8/bUNTzJEhRQYhxEQjBu5wKXBrdfsN92qBFvWJj2JK+pPoK8SQemeW/Wtd
ZXN3C9WoRo7maMffEvFL1KxoGC052EGVYfVaM6wfkZ9g2N5Ccy7iV+YaGayQ
7tZ9Xp9bvcT/p1qzWZ9D/VhtvxY/+pF4UhyTa0oHymoOVGFANeCuwYSqsK7B
choBXYPJIPQn8IGucW+0nXVYiqGJZhJYyU2qaFzJQXDYZ+RawpolQwwtIEyQ
HqoHpwtzrkOTcvUpuEoV1o9lKDiVMxdMzFUYjezEfL6ytzZj2dvSFxo+0Kz2
gT4teOAqRg8chXMAeleJB9E9QsaXiqog5dgfclILecso3xYNv1/Q+4hREJq3
2+Ru52IQqyzq1HWrLRpqdId1kpVpUMB6UOg8XzNW5JZCChKw8GK6z2yE4fWU
laWeY/5HNV6L7oGkIJRe5N7pWL6hkc5KKDgds8Az4ITWeKBQO7AXKEhchxkf
rH+BNvr9O8qJVG760FwQq7zj6ZbXYPMdoM3XOL83nyy96Nh+Jg7ab8ndQOcG
cjz7+GHpSyq3+604Juq/5HF5U9XCptrBplrDplrDpvu0968al1lprJr2+IUJ
0IeZ4VHgTy0u6xac4Od6MPTE8/nLp19MuUL2vfuMKyw0zOt9/QIvpQO5fdZr
WlMdG6bjP/3Jb6bqWjZPr4EqlpNtA4G0bSRF6ivvqltnRWfVHdRidFNG/Dca
f0Bx0XXjt9oyNQ3ajI/fmbuJPXjK1xKXewcDTP/4e2xtoNeA+BNzPLuBbfer
NnDd+i5lgXYD26ZrbWCvt1Yb2GvRdgN7jdpuYK9RaQOXJ72SFpoR3Gb0ygb+
lcevbGDz3+pCrOiuughLKcy5f92Dv0ze8jh7W3lcof0Wi26bDbNhj2BYqRJ4
zSL24/RmwXA1kqvNrkFbW777apvRHFetgbQpqphS63KJ8vZfuQjr7VdnFfCy
j3wxs0uxHmJ43JaYmRWLni5DsGoide/frzU1wPbE1hRN0qJnakR/8t5Nz3oc
NIMaxmm5QERK1pXisdX2PWjnRF3zlj2E0WQ6SDOwjnKwZWm6cjlMy2XXtJJH
d52F7iEOBmFc7eOjNmVLBmusCzyl9t5U+1kJlGlCeRmrt16tUbScX7fjNfJx
MNRYXZcx1U6+xdTtiG1x5RzNu++q/O9Ti2nNKblO33/UvVeN2m/pv2qFGlz/
+VqTs83W00Rs/EKLcUgYzcfrLeEobSWfhG2xs6/qBHAND+W+qMe+94mD93rk
e1+33tFeq7IS3K6V69CEOeA/tbOQzyk+kX/qNfklc1kNUHUmDe4WTNL3LCrP
3UJVBIxPzfe2rLK1HJ/Lvf9kKbi20b3/5N5/8rn9J/e+kKXgrr8ZvUb3vpB7
X8gaze59IbWA3vtC6ujy3hdy7wu594Xc+0JqGtz7QkrA3/tCyl/f+0JW+UIk
Wu9dww064v7QMDuuDVVmX6o17/K+XGpNOYPsV5u2t6ZMM9XWmiq3aKWdlRu1
sqbKjVxryn3Xik3WNFhOA+XRfWvq1x/ft6bct9WFWNFddRGWUpjhSmqZQFCl
3uvlQPmrNkCvAXHFtWEf281oZ7ZqM9atVeOX/ma0TdfajB6KW21Gr0Xbzeg1
arsZ1ZLNqNbdDOUGK5dWLd2Mv/L4lc2o1qXrcoM245dcG6aXOvJ+71nV7uMK
7cvPMjhtszaujZpmbVwbS5otc20sabbMtVHGVFHFlFqXS5S3/8pFWG+/OqvQ
xrWxBDFLXRtl8CuujSUTqXuv6bwdiCtdG5+w96WujVLrlgt0N9dGuYf1XRuV
HtZ2bZR7WN+10dRDe9dGBZONm7Ilg624Nsybaj8rgTJNVro2lP3YujY8oBr4
dTteozWLZa4Nf7T9FpNvMfWVro3KCJUKDL+WmNac0nVtlN6rRk229JVaodLW
f77W5Gyz9TSRla6NcoOVro1yg5WuDQu679rwXrlGhPeiHvveJ0tcGzVft97R
XqsWro2aVo2ujfrPl7g2Vs5lNUDVmZTa+BfRUoKXU1nYyewafXRm1/HHZXa5
15K3u5XcQ0jzdyYTLEubbipulRNmOmm6Hv7L+jX2Rq4mLyjNt6jnJSE17oer
Urbcb1clbZXnVZNg4X+1HEa1BoxqDRhtv2XxWjdipQ9DWm1vS1+PbOrz0n5P
JFPjmYSnrX2T3iKtoLga/2SW3t1DWWnbPFW3zV28lGVSbN9suadyBXE2NFnL
Wwjfr/JX/jpQrPJargVF3bKsoL5a3yU8X+G9zNJ2/suW4K8F+2fhvzXezxYb
XtWu/AqWXOMDXXfDlxZrbT/oGhu+1OwuvtDqhlfrb7Vqk7XsgLoN/5tAscoz
uhYUdcuygvoa/KM1W8C8aHTPeTtEflq5mZDB3MlPinznTp5Sp+F6vlKn4Rre
UlRImlwza/KVep/pimW5o98U1+VunlMHTev4TnFbrvaeOhP6aA8nY//zeVAr
/X8eHyoS2Md6UbP04/2o2MfHelId2rmzL9Xp487e1BWbtr1HlYBp9qnW7M9W
omMdv2qd6bea06/jXUW9o61/tYaNNaCiFSLW9bJqZDT6WT+36LfcdaW3tV73
Ln1nPl3P47ruNN2G6+o56/pdUaCt6XlF/b6175WZXYP3tWQIlV6t9sD6K0E/
S32w63CAUrs7+WEdp0o7TyyywjV9sS2Ja+mMmh1RS+41ype9XM8x1RjA9pFe
qXv/0r1/6beB4t6/tDbsvn/p3lN07yn6baC49xTde4ruPUVOs3tPUWmYtoi7
9xTV93HvKbr3FFVHufcU3XuK7j1F/16eIj9yTx0O3yTpTRyO+I56vIE5KD36
0Hl3kCxmA7z+8k8b4yDOQ13jXi5O56uFohxIZ7ggL9Q0yNUgTMIxSWm6flCN
QR2hewPor79cqIvoOszyrrpIkyBRfwsAJV11NM2go+PwWbaIEr6V6CzIhmmu
LoPkX3RzU5Dw/dnPwiT9r/9ZqKM4iPDyqb+kIf6evYHfr2CI87AYTrvQfBrm
U/WXEAvXQ39BEnXVebCI1WFUvAllkAv4z616toAvuSw+3iR8HYU3ckP8jO9a
d8d/EQABxMG1ejFNizeBaYdhjcevjq5eXVxKHzDJyzCbRAhznBZFZL59dX55
fHohn8FXWIV/ASAXOUASzWynpy+vnA87x3jtVhzTTYGZ+ejy5MjtDRAbqZPr
MDEffHfy8vDiynxA2I2G0wCDNv/rf711vry6/Kv9Uu58x2sG9Ow7R0EWw6qc
440IRYCCTlqOwgI0FVh1D2QaK19M5C6anC8eCBPob4jXqiL55PpieXNJl0b1
cRROAOHpPPwXjZNPw/k0pHtQeUxNeEwvlQU3wB0e6ym53RPRFSl2qU6TYBil
XfVf/18WDdVfb5Mh0tN3aZbdqudBlE0XWV501X+DWSbqKoiBkKI3QdYFmh2o
ozSNw1uN2Dehehbl03RuV/Hk8jsDwP8P3B3nJvqeAQA=

-->

</rfc>
