<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.31 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-ietf-opsawg-discardmodel-01" category="info" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Info. Model for Pkt Discard Reporting">An Information Model for Packet Discard Reporting</title>

    <author initials="J." surname="Evans" fullname="John Evans">
      <organization>Amazon</organization>
      <address>
        <postal>
          <street>1 Principal Place, Worship Street</street>
          <city>London</city>
          <code>EC2A 2FA</code>
          <country>UK</country>
        </postal>
        <email>jevanamz@amazon.co.uk</email>
      </address>
    </author>
    <author initials="O." surname="Pylypenko" fullname="Oleksandr Pylypenko">
      <organization>Amazon</organization>
      <address>
        <postal>
          <street>410 Terry Ave N</street>
          <city>Seattle</city>
          <region>WA</region>
          <code>98109</code>
          <country>US</country>
        </postal>
        <email>opyl@amazon.com</email>
      </address>
    </author>
    <author initials="J." surname="Haas" fullname="Jeffrey Haas">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <street>1133 Innovation Way</street>
          <city>Sunnyvale</city>
          <region>CA</region>
          <code>94089</code>
          <country>US</country>
        </postal>
        <email>jhaas@juniper.net</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>

    <date year="2024" month="May" day="24"/>

    <area>Operations and Management Area</area>
    <workgroup>OPSAWG</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>The primary function of a network is to transport packets and deliver them according to a service level objective.  Understanding both where and why packet loss occurs within a network is essential for effective network operation.  Device-reported packet loss is the most direct signal for network operations to identify customer impact resulting from unintended packet loss.  This document defines an information model for packet loss reporting, which classifies these signals to enable automated network mitigation of unintended packet loss.</t>



    </abstract>



  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t>In automating network operations, a network operator needs to be able to detect anomalous packet loss, diagnose or root cause the loss, and then apply one of a set of possible actions to mitigate customer-impacting packet loss.  Some packet loss is normal or intended in IP networks, however.  Hence, precise classification of packet loss signals is crucial both to ensure that anomalous packet loss is easily detected and that the right action or sequence of actions are taken to mitigate the impact, as taking the wrong action can make problems worse.</t>

<t>The existing metrics for reporting packet loss, as defined in <xref target="RFC1213"/> - namely ifInDiscards, ifOutDiscards, ifInErrors, ifOutErrors - do not provide sufficient precision to automatically identify the cause of the loss and mitigate the impact.  From a network operator's perspective, ifInDiscards can represent both intended packet loss (e.g., packets discarded due to policy) and unintended packet loss (e.g., packets dropped in error). Furthermore, these definitions are ambiguous, as vendors can and have implemented them differently.  In some implementations, ifInErrors accounts only for errored packets that are dropped, while in others, it accounts for all errored packets, whether they are dropped or not.  Many implementations support more discard metrics than these; where they do, they have been inconsistently implemented due to the lack of a standardised classification scheme and clear semantics for packet loss reporting.  <xref target="RFC7270"/> provides support for reporting discards per flow in IPFIX using forwardingStatus, however, the defined drop reason codes also lack sufficient clarity to support automated root cause analysis and mitigation of impact.</t>

<t>Hence, this document defines an information model for packet loss reporting, aiming to address these issues by presenting a packet loss classification scheme that can enable automated mitigation of unintended packet loss.  Consistent with <xref target="RFC3444"/>, this information model is independent of any specific implementations or protocols used to transport the data.  There are multiple ways that this information model could be implemented (i.e., data models), including SNMP <xref target="RFC1157"/>, NETCONF <xref target="RFC6241"/> / YANG <xref target="RFC7950"/>, and IPFIX <xref target="RFC5153"/>, but they are outside of the scope of this document.  We further limit the scope of this document to reporting packet loss at layer 3 and frames discarded at layer 2, although the information model could be extended in future to cover segments dropped at layer 4.</t>

<t>Section 3 describes the problem. Section 4 defines the information model and semantics with examples.  Section 5 provides examples of discard signal-to-cause-to-auto-mitigation action mapping.  Appendix B details the authors' experience from implementing this model.</t>

<t>This document considers only the signals that may trigger automated mitigation plans and not how they are defined or executed.</t>

</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>

<t>A packet discard is considered to be any packet dropped by a device, which may be intentional (i.e. due to a configured policy, e.g. such as an Access Control List (ACL)) or unintentional (i.e. packets dropped in error).</t>

</section>
<section anchor="problem"><name>Problem Statement</name>
<t>At the highest-level, unintended packet loss is the discarding of packets that the network operator otherwise intends to deliver, i.e. which indicates 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 access control list (ACL) and being dropped.  Whilst the specific definition of unintended packet loss is network dependent, for any network there are a small set of potential actions that can be taken to minimise customer impact by auto-mitigating unintended packet loss:</t>

<t><list style="numbers">
  <t>Take a device, link, or set of devices and/or links out of service.</t>
  <t>Return a device, link, or set of devices and/or links back into service.</t>
  <t>Move traffic to other links or devices.</t>
  <t>Roll back a recent change to a device that might have caused the problem.</t>
  <t>Escalate to a human (e.g., network operator) as a last resort.</t>
</list></t>

<t>A precise signal of impact is crucial, as taking the wrong action can be worse than taking no action. For example, taking a congested device out of service can make congestion worse by moving the traffic to other links or devices, which are already congested.</t>

<t>To detect whether device-reported discards indicate a problem and to determine what actions should be taken to mitigate the impact and remediate the cause, depends on four primary features of the packet loss signal:</t>

<t><list style="numbers">
  <t>The cause of the loss.</t>
  <t>The rate and/or degree of the loss.</t>
  <t>The duration of the loss.</t>
  <t>The location of the loss.</t>
</list></t>

<t>Features 2, 3, and 4 are already addressed with passive monitoring statistics, for example, obtained with SNMP <xref target="RFC1157"/> / MIB-II <xref target="RFC1213"/> or NETCONF <xref target="RFC6241"/> / YANG <xref target="RFC7950"/>. Feature 1, however, is dependent on the classification scheme used for packet loss reporting. In the next section, we define a new classification scheme to address this problem.</t>

</section>
<section anchor="model"><name>Information Model</name>

<t>The classification scheme is defined as a tree which follows the structure component/direction/type/layer/sub-type/sub-sub-type/.../metric, where:<br />
a. component can be interface|device|control_plane|flow<br />
b. direction can be ingress|egress<br />
c. type can be traffic|discards, where traffic accounts for packets successfully received or transmitted, and discards accounts for packet drops<br />
d. layer can be l2|l3</t>

<figure><artwork><![CDATA[
.
|-- interface/
|   |-- ingress/
|   |   |-- traffic/
|   |   |   |-- l2/
|   |   |   |   |-- frames
|   |   |   |   `-- bytes
|   |   |   |-- l3/
|   |   |   |   |-- v4/
|   |   |   |   |   |-- packets
|   |   |   |   |   |-- bytes
|   |   |   |   |   |-- unicast/
|   |   |   |   |   |   |-- packets
|   |   |   |   |   |   `-- bytes
|   |   |   |   |   `-- multicast/
|   |   |   |   |       |-- packets
|   |   |   |   |       `-- bytes
|   |   |   |   `-- v6/
|   |   |   |       |-- packets
|   |   |   |       |-- bytes
|   |   |   |       |-- unicast/
|   |   |   |       |   |-- packets
|   |   |   |       |   `-- bytes
|   |   |   |       `-- multicast/
|   |   |   |           |-- packets
|   |   |   |           `-- bytes
|   |   |   `-- qos/
|   |   |       |-- class_0/
|   |   |       |   |-- packets
|   |   |       |   `-- bytes
|   |   |       |-- ...
|   |   |       `-- class_n/
|   |   |           |-- packets
|   |   |           `-- bytes
|   |   `-- discards/
|   |       |-- l2/
|   |       |   |-- frames
|   |       |   `-- bytes
|   |       |-- l3/
|   |       |   |-- v4/
|   |       |   |   |-- packets
|   |       |   |   |-- bytes
|   |       |   |   |-- unicast/
|   |       |   |   |   |-- packets
|   |       |   |   |   `-- bytes
|   |       |   |   `-- multicast/
|   |       |   |       |-- packets
|   |       |   |       `-- bytes
|   |       |   `-- v6/
|   |       |       |-- packets
|   |       |       |-- bytes
|   |       |       |-- unicast/
|   |       |       |   |-- packets
|   |       |       |   `-- bytes
|   |       |       `-- multicast/
|   |       |           |-- packets
|   |       |           `-- bytes
|   |       |-- errors/
|   |       |   |-- l2/
|   |       |   |   `-- rx/
|   |       |   |       |-- frames
|   |       |   |       |-- crc_error/
|   |       |   |       |   `-- frames
|   |       |   |       |-- invalid_mac/
|   |       |   |       |   `-- frames
|   |       |   |       |-- invalid_vlan/
|   |       |   |       |   `-- frames
|   |       |   |       `-- invalid_frame/
|   |       |   |           `-- frames
|   |       |   |-- l3/
|   |       |   |   |-- rx/
|   |       |   |   |   |-- packets
|   |       |   |   |   |-- checksum_error/
|   |       |   |   |   |   `-- packets
|   |       |   |   |   |-- mtu_exceeded/
|   |       |   |   |   |   `-- packets
|   |       |   |   |   |-- invalid_packet/
|   |       |   |   |   |   `-- packets
|   |       |   |   |   `-- ttl_expired/
|   |       |   |   |       `-- packets
|   |       |   |   |-- no_route/
|   |       |   |   |   `-- packets
|   |       |   |   |-- invalid_sid/
|   |       |   |   |   `-- packets
|   |       |   |   `-- invalid_label/
|   |       |   |       `-- packets
|   |       |   `-- local/
|   |       |       |-- packets
|   |       |       `-- hw/
|   |       |           |-- packets
|   |       |           `-- parity_error/
|   |       |               `-- packets
|   |       |-- policy/
|   |       |   |-- l2/
|   |       |   |   |-- frames
|   |       |   |   `-- acl/
|   |       |   |       `-- frames
|   |       |   `-- l3/
|   |       |       |-- packets
|   |       |       |-- acl/
|   |       |       |   `-- packets
|   |       |       |-- policer/
|   |       |       |   |-- packets
|   |       |       |   `-- bytes
|   |       |       |-- null_route/
|   |       |       |   `-- packets
|   |       |       |-- rpf/
|   |       |       |   `-- packets
|   |       |       `-- ddos/
|   |       |           `-- packets
|   |       `-- no_buffer/
|   |           |-- class_0/
|   |           |   |-- packets
|   |           |   `-- bytes
|   |           |-- ...
|   |           `-- class_n/
|   |               |-- packets
|   |               `-- bytes
|   `-- egress/
|       |-- traffic/
|       |   |-- l2/
|       |   |   |-- frames
|       |   |   `-- bytes
|       |   |-- l3/
|       |   |   |-- v4/
|       |   |   |   |-- packets
|       |   |   |   |-- bytes
|       |   |   |   |-- unicast/
|       |   |   |   |   |-- packets
|       |   |   |   |   `-- bytes
|       |   |   |   `-- multicast/
|       |   |   |       |-- packets
|       |   |   |       `-- bytes
|       |   |   `-- v6/
|       |   |       |-- packets
|       |   |       |-- bytes
|       |   |       |-- unicast/
|       |   |       |   |-- packets
|       |   |       |   `-- bytes
|       |   |       `-- multicast/
|       |   |           |-- packets
|       |   |           `-- bytes
|       |   `-- qos/
|       |       |-- class_0/
|       |       |   |-- packets
|       |       |   `-- bytes
|       |       |-- ...
|       |       `-- class_n/
|       |           |-- packets
|       |           `-- bytes
|       `-- discards/
|           |-- l2/
|           |   |-- frames
|           |   `-- bytes
|           |-- l3/
|           |   |-- v4/
|           |   |   |-- packets
|           |   |   |-- bytes
|           |   |   |-- unicast/
|           |   |   |   |-- packets
|           |   |   |   `-- bytes
|           |   |   `-- multicast/
|           |   |       |-- packets
|           |   |       `-- bytes
|           |   `-- v6/
|           |       |-- packets
|           |       |-- bytes
|           |       |-- unicast/
|           |       |   |-- packets
|           |       |   `-- bytes
|           |       `-- multicast/
|           |           |-- packets
|           |           `-- bytes
|           |-- errors/
|           |   |-- l2/
|           |   |   `-- tx/
|           |   |       `-- frames
|           |   `-- l3/
|           |       `-- tx/
|           |           `-- packets
|           |-- policy/
|           |   `-- l3/
|           |       |-- acl/
|           |       |   `-- packets
|           |       `-- policer/
|           |           |-- packets
|           |           `-- bytes
|           `-- no_buffer/
|               |-- class_0/
|               |   |-- packets
|               |   `-- bytes
|               |-- ...
|               `-- class_n/
|                   |-- packets
|                   `-- bytes
`-- control_plane/
    `-- ingress/
        |-- traffic/
        |   |-- packets
        |   `-- bytes
        `-- discards/
            |-- packets
            |-- bytes
            `-- policy/
                `-- packets
]]></artwork></figure>

<t>For additional context, Appendix A provides an example of where packets may be discarded in a device.</t>

<section anchor="class_descriptions"><name>Discard Class Descriptions</name>

<dl>
  <dt>discards/policy/:</dt>
  <dd>
    <t>These are intended discards, meaning packets dropped by a device due to a configured policy. There are multiple sub-classes.</t>
  </dd>
  <dt>discards/error/l2/rx/:</dt>
  <dd>
    <t>Frames discarded due to errors in the received L2 frame. There are multiple sub-classes, such as those resulting from failing CRC, invalid header, invalid MAC address, or invalid VLAN.</t>
  </dd>
  <dt>discards/error/l3/rx/:</dt>
  <dd>
    <t>These are discards which occur due to errors in the received packet, indicating an upstream problem rather than an issue with the device dropping the errored packets. There are multiple sub-classes, including header checksum errors, MTU exceeded, and invalid packet, i.e. due to incorrect version, incorrect header length, or invalid options.</t>
  </dd>
  <dt>discards/error/l3/rx/ttl_expired:</dt>
  <dd>
    <t>There can be multiple causes for TTL-expired (or Hop limit exceeded) discards: i) trace-route; ii) TTL (Hop limit) set too low by the end-system; iii) routing loops.</t>
  </dd>
  <dt>discards/error/l3/no_route/:</dt>
  <dd>
    <t>Discards occur due to a packet not matching any route.</t>
  </dd>
  <dt>discards/error/local/:</dt>
  <dd>
    <t>A device may discard packets within its switching pipeline due to internal errors, such as parity errors. Any errored discards not explicitly assigned to the above classes are also accounted for here.</t>
  </dd>
  <dt>discards/no_buffer/:</dt>
  <dd>
    <t>Discards occur due to no available buffer to enqueue the packet. These can be tail-drop discards or due to an active queue management algorithm, such as RED <xref target="RED93"/> or CODEL <xref target="RFC8289"/>.</t>
  </dd>
</dl>

</section>
<section anchor="requirements"><name>Requirements</name>
<t>Requirements 1-10 relate to packets forwarded by the device; requirement 11 relates to packets destined to or from the device:</t>

<t><list style="numbers">
  <t>All instances of frame or packet receipt, transmission, and discards <bcp14>MUST</bcp14> be reported.</t>
  <t>All instances of frame or packet receipt, transmission, and discards <bcp14>SHOULD</bcp14> be attributed to the physical or logical interface of the device where they occur.</t>
  <t>An individual frame <bcp14>MUST</bcp14> only be accounted for by either the L2 traffic class or the L2 discard classes within a single direction, i.e., ingress or egress.</t>
  <t>An individual packet <bcp14>MUST</bcp14> only be accounted for by either the L3 traffic class or the L3 discard classes within a single direction, i.e., ingress or egress.</t>
  <t>A frame accounted for at L2 <bcp14>SHOULD NOT</bcp14> be accounted for at L3 and vice versa.  An implementation <bcp14>MUST</bcp14> expose which layers a discard is counted against.</t>
  <t>The aggregate L2 and L3 traffic and discard classes <bcp14>SHOULD</bcp14> account for all underlying packets received, transmitted, and discarded across all other classes.</t>
  <t>The aggregate Quality of Service (QoS) traffic and no buffer discard classes <bcp14>MUST</bcp14> account for all underlying packets received, transmitted, and discarded across all other classes.</t>
  <t>In addition to the L2 and L3 aggregate classes, an individual discarded packet <bcp14>MUST</bcp14> only account against a single error, policy, or no_buffer discard subclass.</t>
  <t>When there are multiple reasons for discarding a packet, the ordering of discard class reporting <bcp14>MUST</bcp14> be defined.</t>
  <t>If Diffserv <xref target="RFC2475"/> is not used, no_buffer discards <bcp14>SHOULD</bcp14> be reported as class0.</t>
  <t>Traffic to the device control plane has its own class, however, traffic from the device control plane <bcp14>SHOULD</bcp14> be accounted for in the same way as other egress traffic.</t>
</list></t>

</section>
<section anchor="examples"><name>Examples</name>

<t>Assuming all the requirements are met, a "good" unicast IPv4 packet received would increment:<br />
- interface/ingress/traffic/l3/v4/unicast/packets<br />
- interface/ingress/traffic/l3/v4/unicast/bytes<br />
- interface/ingress/traffic/qos/class_0/packets<br />
- interface/ingress/traffic/qos/class_0/bytes</t>

<t>A received unicast IPv6 packet discarded due to Hop Limit expiry would increment:<br />
- interface/ingress/discards/l3/v6/unicast/packets<br />
- interface/ingress/discards/l3/v6/unicast/bytes<br />
- interface/ingress/discards/l3/rx/ttl_expired/packets</t>

<t>An IPv4 packet discarded on egress due to no buffers would increment:<br />
- interface/egress/discards/l3/v4/unicast/packets<br />
- interface/egress/discards/l3/v4/unicast/bytes<br />
- interface/egress/discards/no_buffer/class_0/packets<br />
- interface/egress/discards/no_buffer/class_0/bytes</t>

</section>
</section>
<section anchor="mapping"><name>Example Signal-Cause-Mitigation Mapping</name>
<t><xref target="ex-table"/> gives an example discard signal-to-cause-to-mitigation action mapping.  Mappings for a specific network will be dependent on the definition of unintended packet loss for that network.</t>

<figure title="Example Signal-Cause-Mitigation Mapping" anchor="ex-table"><artwork><![CDATA[
+-------------------------------------------+---------------------+------------+----------+-------------+-----------------------+
| Discard class                             | Cause               | Discard    | Discard  | Unintended? | Possible actions      |
|                                           |                     | rate       | duration |             |                       |
+-------------------------------------------+---------------------+------------+----------+-------------+-----------------------+
| ingress/discards/errors/l2/rx             | Upstream device     | >Baseline  | O(1min)  | Y           | Take upstream link or |
|                                           | or link errror      |            |          |             | device out-of-service |
| ingress/discards/errors/l3/rx/ttl_expired | Tracert             | <=Baseline |          | N           | no action             |
| ingress/discards/errors/l3/rx/ttl_expired | Convergence         | >Baseline  | O(1s)    | Y           | no action             |
| ingress/discards/errors/l3/rx/ttl_expired | Routing loop        | >Baseline  | O(1min)  | Y           | Roll-back change      |
| .*/policy/.*                              | Policy              |            |          | N           | no action             |
| ingress/discards/errors/l3/no_route       | Convergence         | >Baseline  | O(1s)    | Y           | no action             |
| ingress/discards/errors/l3/no_route       | Config error        | >Baseline  | O(1min)  | Y           | Roll-back change      |
| ingress/discards/errors/l3/no_route       | Invalid destination | >Baseline  | O(10min) | N           | Escalate to operator  |
| ingress/discards/errors/local             | Device errors       | >Baseline  | O(1min)  | Y           | Take device           |
|                                           |                     |            |          |             | out-of-service        |
| egress/discards/no_buffer                 | Congestion          | <=Baseline |          | N           | no action             |
| egress/discards/no_buffer                 | Congestion          | >Baseline  | O(1min)  | Y           | Bring capacity back   |
|                                           |                     |            |          |             | into service or move  |
|                                           |                     |            |          |             | traffic               |
+-------------------------------------------+---------------------+------------+----------+-------------+-----------------------+

]]></artwork></figure>

<t>The 'Baseline' in the 'Discard Rate' column is network dependent.</t>

</section>
<section anchor="security"><name>Security Considerations</name>
<t>There are no new security considerations introduced by this document.</t>

</section>
<section anchor="iana"><name>IANA Considerations</name>
<t>There are no new IANA considerations introduced by this document.</t>

</section>
<section anchor="contributors"><name>Contributors</name>

<figure><artwork><![CDATA[
Nadav Chachmon
Cisco Systems, Inc.
170 West Tasman Dr.
San Jose, CA 95134
United States of America
Email: nchachmo@cisco.com
]]></artwork></figure>

</section>
<section anchor="acknowledgements"><name>Acknowledgments</name>
<t>The content of this draft has benefitted from feedback from JR Rivers, Ronan Waide, Chris DeBruin, and Marcoz Sanz.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>



<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>




    </references>

    <references title='Informative References'>



<reference anchor='RFC1213'>
  <front>
    <title>Management Information Base for Network Management of TCP/IP-based internets: MIB-II</title>
    <author fullname='K. McCloghrie' initials='K.' surname='McCloghrie'/>
    <author fullname='M. Rose' initials='M.' surname='Rose'/>
    <date month='March' year='1991'/>
    <abstract>
      <t>This memo defines the second version of the Management Information Base (MIB-II) for use with network management protocols in TCP/IP-based internets. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='STD' value='17'/>
  <seriesInfo name='RFC' value='1213'/>
  <seriesInfo name='DOI' value='10.17487/RFC1213'/>
</reference>

<reference anchor='RFC1157'>
  <front>
    <title>Simple Network Management Protocol (SNMP)</title>
    <author fullname='J.D. Case' initials='J.D.' surname='Case'/>
    <author fullname='M. Fedor' initials='M.' surname='Fedor'/>
    <author fullname='M.L. Schoffstall' initials='M.L.' surname='Schoffstall'/>
    <author fullname='J. Davin' initials='J.' surname='Davin'/>
    <date month='May' year='1990'/>
    <abstract>
      <t>This RFC is a re-release of RFC 1098, with a changed "Status of this Memo" section plus a few minor typographical corrections. This memo defines a simple protocol by which management information for a network element may be inspected or altered by logically remote users. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='1157'/>
  <seriesInfo name='DOI' value='10.17487/RFC1157'/>
</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='RFC5153'>
  <front>
    <title>IP Flow Information Export (IPFIX) Implementation Guidelines</title>
    <author fullname='E. Boschi' initials='E.' surname='Boschi'/>
    <author fullname='L. Mark' initials='L.' surname='Mark'/>
    <author fullname='J. Quittek' initials='J.' surname='Quittek'/>
    <author fullname='M. Stiemerling' initials='M.' surname='Stiemerling'/>
    <author fullname='P. Aitken' initials='P.' surname='Aitken'/>
    <date month='April' year='2008'/>
    <abstract>
      <t>The IP Flow Information Export (IPFIX) protocol defines how IP Flow information can be exported from routers, measurement probes, or other devices. This document provides guidelines for the implementation and use of the IPFIX protocol. Several sets of guidelines address Template management, transport-specific issues, implementation of Exporting and Collecting Processes, and IPFIX implementation on middleboxes (such as firewalls, network address translators, tunnel endpoints, packet classifiers, etc.). This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='5153'/>
  <seriesInfo name='DOI' value='10.17487/RFC5153'/>
</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='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="RED93" >
  <front>
    <title>Random Early Detection gateways for Congestion Avoidance</title>
    <author initials="V." surname="Jacobson">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</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='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='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>




    </references>


<section anchor="where-do-packets-get-dropped"><name>Where do packets get dropped?</name>
<t><xref target="ex-drop"/> depicts an example of where and why packets may be discarded in a typical single ASIC, shared buffered type device, where packets ingress on the left and egress on the right.</t>

<figure title="Example of where packets get dropped" anchor="ex-drop"><artwork><![CDATA[
                                                      +----------+
                                                      |          |
                                                      |  CPU     |
                                                      |          |
                                                      +--+---^---+
                                                from_cpu |   | to_cpu
                                                         |   |
                          +------------------------------v---+-------------------------------+
                          |                                                                  |

            +----------+  +----------+  +----------+  +----------+  +----------+  +----------+  +----------+
            |          |  |          |  |          |  |          |  |          |  |          |  |          |
 Packet rx ->  Phy     +-->  Mac     +--> Ingress  +--> Buffers  +--> Egresss  +-->  Mac     +-->  Phy     |>  Packet tx
            |          |  |          |  |  Pipeline|  |          |  |  Pipeline|  |          |  |          |
            +----------+  +----------+  +----------+  +----------+  +----------+  +----------+  +----------+

  Intended                               policy/acl                  policy/acl
  Discards:                              policy/policer              policy/policer
                                         policy/urpf
                                         null_route

Unintended                 error/rx/l2   error/rx/l3   no_buffer     error/tx/l3
  Discards:                              error/local
                                         no_route
                                         ttl

]]></artwork></figure>

</section>
<section anchor="experience"><name>Implementation Experience</name>
<t>This appendix captures the authors' experience gained from implementing and applying this information model across multiple vendors' platforms, as guidance for future implementers.</t>

<t><list style="numbers">
  <t>The number and granularity of classes described in Section 3 represent a compromise.  It aims to offer sufficient detail to enable appropriate automated actions while avoiding excessive detail, which may hinder quick problem identification.  Additionally, it helps constrain the quantity of data produced per interface to constrain data volume and device CPU impacts.  Although further granularity is possible, the scheme described has generally proven to be sufficient for the task of auto-mitigating unintended packet loss.</t>
  <t>There are multiple possible ways to define the discard classification tree.  For example, we could have used a multi-rooted tree, rooted in each protocol.  Instead, we opted to define a tree where protocol discards and causal discards are accounted for orthogonally.  This decision reduces the number of combinations of classes and has proven sufficient for determining mitigation actions.</t>
  <t>NoBuffer discards can be realized differently with different memory architectures. Whether a NoBuffer discard is attributed to ingress or egress can differ accordingly.  For successful auto-mitigation, discards due to egress interface congestion should be reported on egress, while discards due to device-level congestion (e.g. due to exceeding the device forwarding rate) should be reported on ingress.</t>
  <t>Platforms often account for the number of packets discarded where the TTL has expired (or Hop Limit exceeded), and the device CPU has returned an ICMP Time Exceeded message.  There is typically a policer applied to limit the number of packets sent to the device CPU, however, which implicitly limits the rate of TTL discards that are processed.  One method to account for all packet discards due to TTL expired, 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.</t>
  <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 interface/ingress/discards/policy/null_route/packets and interface/ingress/discards/errors/no_route/packets.</t>
  <t>It is useful to account separately for transit packets discarded by transit ACLs or policers, and packets discarded by ACLs or policers which limit the number of packets to the device control plane.</t>
  <t>It is not possible to identify a configuration error - e.g., when intended discards are unintended - with device packet loss metrics alone.  For example, to determine if ACL drops are intended or due to a misconfigured ACL some other method is needed, i.e., with configuration validation before deployment or by detecting a significant change in ACL drops after a configuration change compared to before.</t>
  <t>Where traffic byte counters need to be 64-bit, packet and discard counters that increase at a lower rate may be encoded in fewer bits, e.g., 48-bit.</t>
  <t>Aggregate counters need to be able to deal with the possibility of discontinuities in the underlying counters.</t>
  <t>In cases where the reporting device is the source or destination of a tunnel, the ingress protocol for a packet may differ from the egress protocol; if IPv4 is tunneled over IPv6 for example.  Some implementations may attribute egress discards to the ingress protocol.</t>
  <t>While the classification tree is seven layers deep, a minimal implementation may only implement the top six layers.</t>
</list></t>

</section>


  </back>

<!-- ##markdown-source:
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
EQ8K33Tl7ISDXc9hV8hAYNv1/37cC/bmbgAA

-->

</rfc>

