<?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-opsawg-evans-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="2023" month="December" day="01"/>

    
    <workgroup>Independent Stream</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>Router reported packet loss is the primary signal of when a network is not doing its job.  Some packet loss is normal or intended in TCP/IP networks, however.  To minimise network packet loss through automated network operations requires clear and accurate signals of all packets which are dropped and the reasons why.  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>The primary function of a network is to transport packets. Understanding both where and why packet loss occurs is essential for effective network operation.  Router-reported packet loss is the most direct signal for network operations to identify customer impact resulting from unintended packet loss. Accurate accounting of packet loss is not enough, however, as some level of packet loss is normal in TCP/IP networks.  In automating network operations, there are only a relatively small number of automated actions that can be taken to mitigate customer-impacting packet loss.  Hence, precise classification of packet loss signals is crucial both to ensure that customer impacting packet loss is detected and that the right action is taken to mitigate the impact, as taking the wrong action can make problems worse.</t>

<t>The existing metrics for 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 (i.e., 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 clearly defined classification scheme and semantics for packet loss reporting.</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.  This information model is independent of any specific implementations or protocols used to transport the data <xref target="RFC3444"/>.  There are multiple ways that this information model could be implemented, 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.</t>

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

<t>The terms 'packet drop' and 'discard' are considered equivalent and are used interchangeably in this document.</t>

</section>
<section anchor="problem"><name>Problem statement</name>

<t>Working backwards from the goal of auto-mitigation of unintended packet loss, there are only a relatively small number of potential actions than can be taken to auto-mitigate 
customer impacting 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 router-reported packet loss is 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 account 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
|   |       |   `-- local/
|   |       |       |-- packets
|   |       |       `-- hw/
|   |       |           |-- packets
|   |       |           `-- parity_error/
|   |       |               `-- packets
|   |       |-- policy/
|   |       |   `-- l3/
|   |       |       |-- packets
|   |       |       |-- acl/
|   |       |       |   `-- packets
|   |       |       |-- policer/
|   |       |       |   |-- packets
|   |       |       |   `-- bytes
|   |       |       |-- null_route/
|   |       |       |   `-- packets
|   |       |       `-- rpf/
|   |       |           `-- 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 dropped in a device.</t>

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

<t>discards/policy/<br />
    These are intended discards, meaning packets dropped due to a configured policy. There are multiple sub-classes.</t>

<t>discards/error/l2/rx/<br />
    Frames dropped 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>

<t>discards/error/l3/rx/<br />
    These drops 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>

<t>discards/error/l3/rx/ttl_expired<br />
    There can be multiple causes for TTL-exceed drops: i) trace-route; ii) TTL set too low by the end-system; iii) routing loops.</t>

<t>discards/error/l3/no_route/<br />
    Discards occur due to a packet not matching any route.</t>

<t>discards/error/local/<br />
    A device may drop 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>

<t>discards/no_buffer/<br />
    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>

</section>
<section anchor="semantics"><name>Semantics</name>
<t>Rules 1-10 relate to packets forwarded by the device; rule 11 relates to packets destined to/from the device:</t>

<t><list style="numbers">
  <t>All instances of frame or packet receipt, transmission, and drops <bcp14>MUST</bcp14> be reported.</t>
  <t>All instances of frame or packet receipt, transmission, and drops <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>MUST NOT</bcp14> be accounted for at L3 and vice versa</t>
  <t>The aggregate L2 and L3 traffic and discard classes <bcp14>MUST</bcp14> account for all underlying packets received, transmitted, and dropped across all other classes.</t>
  <t>The aggregate qos traffic and discard (no buffer) classes <bcp14>MUST</bcp14> account for all underlying packets received, transmitted, and dropped across all other classes.</t>
  <t>In addition to the L2 and L3 aggregate classes, an individual dropped packet <bcp14>MUST</bcp14> only account against a single error, policy, or no_buffer discard subclass.</t>
  <t>When there are multiple drop reasons for a packet, the ordering of discard class reporting <bcp14>MUST</bcp14> be defined.</t>
  <t>If Diffserv <xref target="RFC2475"/> quality of service (QOS) 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:
- 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 dropped due to TTL 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 dropped on egress due to no buffers would increment:
- 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>A Possible Signal-Cause-Mitigation Mapping</name>

<t>Example discard signal-to-cause-to-mitigation mappings are shown in the table below:</t>

<figure><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="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>

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




    </references>


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

<figure><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 manage data volume and device CPU impacts.  Although further granularity is possible, the scheme described has generally proven to be sufficient.</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. Hence, 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 (exceeding the device forwarding rate) should be reported on ingress.</t>
  <t>Platforms often account for the number of packets dropped where the TTL has expired, and the CPU has returned an ICMP Time Exceeded message.  There is typically a policer applied to limit the number of packets sent to the CPU, however, which implicitly limits the rate of TTL discards that are processed.  One method to account for all packet discards due to TTL exceeded, 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 dropped by transit ACLs or policers, and packets dropped 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 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>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:
H4sIAEfPaWUAA80923bcNpLv/Aps8uA46W7r5sRWJplpy/JGGesykjzenDmz
DpqN7mbEJmheJHUs77fst+yXbV0AEGSTVCvO5IzOSdLEpVBVqCoUgEJlOBwG
RVTEal+ME3GUzHS2lEWkE3GspyoW8C3OZHilCvEyykOZTcW5SnVWRMk8kJNJ
pq73qdvI73DV1nqqw0QuYaBpJmfFUKe5vJkP1bVM8uGUWy8RxHBrO5jKAhru
bO3sDrd3sCCEgrnOVvsigsGCIEqzfVFkZV7sbG0939oJbnR2Nc90mSI6U5Uq
+FdSiIsiU3IZXKkVNJhiXaGyRBXDl4hEEOSFTKbvZKwTGG+l8iCN9sU/Ch0O
RA54Z2qWw6/VEn/8MwhkWSx0th+IYSDgL0ryffHjSBwiEVTCFP6oF4lXqLM5
sHcpf9UJfecAVxX7YlucZVESRqmMxVksQzUQb3WWL6KU8FYFtQ6jAsh+rZOp
6R4Cl/bF4cHOWOy8GpuiMimQO2/+St9qKaN4X/yC3JXLX/8iafBRqEfllaC/
gP/l0XE6EmereAWcu9IeLaexusqBSVmjtouove0tcamybCXG10qceCRcKFmA
pFFJpuYgZPvi7dgj6fmz7a3nDXoufHp0uoorWpbrNMBc/CBlbSrUbJapVVVM
eP9YJlGqMnGiChScvD4t27u7ICiJvmZNeCtXPhVlkqyuZYOOgxode1vPeun4
ZQHY/OUXRmKU4ER7RIxH4q9yqvOFR8b4Ospk4pcTHQegN1pcrPJCLUFQj5Jw
VCflmy3xVuWFuJT5Evq/zEY+KVDyo877KHm6vbvXR4m8Ioz+EiIiNCdBwibk
Wu1TQ3H+6mBne/v5PiitNS9+3fbO9q73tf30m+prd29vr/p6uv3Ua/n1zt52
9fXN86db9uvw5XPbjv6MfTsHIdZLcSizeCVeqkKFNLtzsCw3cpWT5TrQyRzY
heXjax1NZRIqD5JT//ofzdrFSLyK9Wq6YfO/j8SPMtST3KgPsWnvm6cVSc92
nj03X8FwOBRyArMqQzBa57oEKwYzhqZVTUXKBjrWeS6iXBQLJdIsWkrQwTya
J2Bd9EzcLFQipEhY4rFdogsx1WCaRVTk4hc9GQlxoZeqCY8mFGBkgHmBdnUK
P8TlwdmTozMLD4RvoW/UNYizEJdaLKMkWka5cuP5MIsFGOr5AvmjQRwAnm2l
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

-->

</rfc>

