<?xml version='1.0' encoding='UTF-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" xml:lang="en" version="3" category="std" docName="draft-li-opsawg-ipfix-latency-budget-drop-00" ipr="trust200902" submissionType="IETF" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true">
  <front>
    <title abbrev="IPFIX Latency-Budget Discard IEs">IP Flow Information Export (IPFIX) Information Elements for Bounded-Latency and Residence-Budget Discard Attribution</title>
    <seriesInfo name="Internet-Draft" value="draft-li-opsawg-ipfix-latency-budget-drop-00"/>
    <author fullname="Zhiqiang Li" initials="Z." surname="Li">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>lizhiqiangyjy@chinamobile.com</email>
      </address>
    </author>
    <author fullname="Zongpeng Du" initials="Z." surname="Du">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <city>Beijing</city>
          <country>China</country>
        </postal>
        <email>duzongpeng@chinamobile.com</email>
      </address>
    </author>
    <author fullname="Junjie Wang" initials="J." surname="Wang">
      <organization>Centec</organization>
      <address>
        <postal>
          <city>Shanghai</city>
          <country>China</country>
        </postal>
        <email>wangjj@centec.com</email>
      </address>
    </author>
    <author fullname="Wei Cheng" initials="W." surname="Cheng">
      <organization>Centec</organization>
      <address>
        <postal>
          <city>Shanghai</city>
          <country>China</country>
        </postal>
        <email>chengw@centec.com</email>
      </address>
    </author>
    <author fullname="Ying Zhao" initials="Y." surname="Zhao">
      <organization>Centec</organization>
      <address>
        <postal>
          <city>Shanghai</city>
          <country>China</country>
        </postal>
        <email>zhaoying@centec.com</email>
      </address>
    </author>
    <author fullname="Chunhao Zhao" initials="C." surname="Zhao">
      <organization>SAIA</organization>
      <address>
        <postal>
          <city>Shanghai</city>
          <country>China</country>
        </postal>
        <email>chunhao.zhao@sh-aia.com</email>
      </address>
    </author>
    <author fullname="Xun Sun" initials="X." surname="Sun">
      <organization>Inesa</organization>
      <address>
        <postal>
          <city>Shanghai</city>
          <country>China</country>
        </postal>
        <email>sunxun@inesa.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="30"/>
    <area>OPS</area>
    <workgroup>Operations and Management Area Working Group</workgroup>
    <keyword>IPFIX</keyword><keyword>bounded-latency discard</keyword><keyword>residence-time budget</keyword><keyword>forwardingStatus</keyword><keyword>packet discard attribution</keyword><keyword>clock uncertainty</keyword><keyword>OPSAWG</keyword><abstract>
      <t>This document defines IP Flow Information Export (IPFIX) Information Elements and a forwardingStatus (IE 89, Status 10b: Dropped) sub-reason code for attributing packet discards caused by explicit residence-time or delivery-deadline budget expiration in bounded-latency data-center and deterministic networks. The specification standardizes primary-cause precedence over competing drop policies, clock-uncertainty comparison invariants, zero-count interval uncertainty encoding, and deterministic mapping to the IETF device packet-discard reporting model.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro">
      <name>Introduction and Scope</name>
      <t>A network enforcement point can discard a packet because its configured delivery or residence-time budget has expired. Reporting only a generic drop does not distinguish this decision from congestion or an access-control policy. Conversely, a late arrival or a timeout at an application does not establish that any network node made such a decision.</t>
      <t>This document defines a reporting profile for an enforcement point that can supply the actual discard decision, the applicable budget, and bounded elapsed-time evidence. It applies within a managed network with an agreed measurement context. A deterministic network <xref target="RFC8655"/> is one possible context; the deadline-based forwarding proposal <xref target="DEADLINE-FWD"/>, a work in progress, is related forwarding work. Neither context establishes that a particular device supports the observations required here.</t>
      <t>The profile uses IPFIX <xref target="RFC7011"/>, its Information Model <xref target="RFC7012"/>, and the existing IANA Information Elements <xref target="IANA-IPFIX"/>. Its additions are a deadline-expired forwarding reason and two quantities: the configured budget and the comparison uncertainty. It defines no packet format, clock synchronization protocol, scheduler, transport protocol, RDMA behavior, or instruction to enable packet discarding. Application cancellation, upper-layer transaction timeouts, storage lookup misses, and transfer completion failures are outside its measurement scope.</t>
      <t>The work-in-progress packet discard model <xref target="DISCARD-MODEL"/> classifies discards by cause and defines interface and device accounting requirements. A deliberate discard enforcing a configured time budget belongs to its policy category, rather than a no-buffer or IP TTL-expiration category. This profile does not add a YANG identity to that model. When both representations are used, exporters and consumers <bcp14>MUST</bcp14> preserve the same primary cause and <bcp14>MUST NOT</bcp14> sum a parent aggregate, a reason-specific count, and another representation of that count as distinct discards.</t>
    </section>
    <section anchor="requirements">
      <name>Requirements Language</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/>
        <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
    </section>
    <section anchor="comparison">
      <name>Deadline Evidence and Comparison</name>
      <t>An enforcing Observation Point is the point at which the device makes the final decision not to forward or locally deliver the packet copy. Transferring a packet to another internal queue or processing path is not a discard. The Metering Process <bcp14>MUST</bcp14> obtain the final decision from the enforcing point, directly or through a source that preserves its attribution. An external monitor's failure to see a packet is insufficient.</t>
      <t>The deadline budget B is a non-negative duration from a defined reference event for the packet to the latest permitted event under the enforced policy. The configured context <bcp14>MUST</bcp14> identify that reference event, the enforcement event, the budget source, and the clock interpretation. For a residence-time policy these can be local ingress and the decision to release or discard the packet. The budget is inclusive: equality is within budget. A deadline discard requires strictly greater elapsed time.</t>
      <t>Let e be the non-negative measured elapsed time from the reference event to the deadline decision, and u a conservative upper bound on the absolute error of e. The deadline-expired reason <bcp14>MUST</bcp14> be used only if the enforcing point actually discarded the packet because the deadline had expired, the measurement context is known, and e - u &gt; B. All three conditions are necessary. The bound <bcp14>MUST</bcp14> include timestamp error, quantization, clock drift over the measured interval, clock-domain conversion, and conversion or rounding error. A statistical confidence interval <bcp14>MUST NOT</bcp14> substitute for this bound.</t>
      <t>The reference timestamp can originate at another node only if its provenance, time scale, and inter-clock error bound are established. A nominal synchronization state or timestamp resolution alone is insufficient. Unknown, invalid, or unbounded uncertainty <bcp14>MUST NOT</bcp14> be encoded or interpreted as zero. A clock step, ambiguous timestamp wrap, or lost clock mapping that invalidates the elapsed-time evidence <bcp14>MUST</bcp14> suspend use of this reason until the evidence is valid again.</t>
      <t>The comparison <bcp14>MUST</bcp14> use exact or conservatively bounded arithmetic. Unsigned subtraction, addition of B and u, unit conversion, or timestamp subtraction <bcp14>MUST NOT</bcp14> wrap, saturate, or lose precision in a way that changes the decision. If the comparison cannot be established safely, no expiry assertion is permitted. For integral non-negative durations in a common unit, first checking e &gt; B and then e - B &gt; u avoids both subtraction underflow and B + u overflow. An implementation <bcp14>MUST NOT</bcp14> evaluate the subtraction before its guard. If e is rounded down to integral nanoseconds, and u is rounded up, this guarded test is conservative; a fractional B <bcp14>MUST NOT</bcp14> be rounded to invent a different policy for the profile.</t>
      <sourcecode type="text">
Mathematical condition: e - u &gt; B
Integer implementation (short-circuit evaluation):
    expired = (e &gt; B) and ((e - B) &gt; u)
Equality, unknown u, invalid time basis: no expiry assertion</sourcecode>
    </section>
    <section anchor="accounting">
      <name>Primary Cause and Accounting Unit</name>
      <t>For each actual discard, the exporter <bcp14>MUST</bcp14> select one primary reason from the actual enforcement decision. If multiple discard conditions are present, the implementation <bcp14>MUST</bcp14> document their decision precedence and make that precedence available to the operator. A packet rejected by an ACL retains the ACL reason even if it was also late. If the primary cause cannot be determined, the exporter <bcp14>MUST NOT</bcp14> select deadline expiration merely because its timing test succeeds.</t>
      <t>Queue exhaustion, a policer decision, IP TTL or Hop Limit exhaustion, admission denial, and predicted inability to meet a future deadline <bcp14>MUST NOT</bcp14> use the new reason. Nor may it describe a late packet that was forwarded. Missing evidence changes what can be asserted, not the packet's treatment. An actual drop whose cause cannot be resolved <bcp14>MAY</bcp14> be reported using the existing generic dropped status under ordinary IPFIX rules.</t>
      <t>The accounting unit is one packet copy actually discarded at one enforcing Observation Point. Multiple notifications about that same local discard <bcp14>MUST</bcp14> contribute only one increment. A telemetry mirror or exported packet sample is not another service packet: discarding that observation copy <bcp14>MUST NOT</bcp14> be reported as discarding the observed traffic. Replicas intentionally carried on separate service branches are distinct packet copies; their local discard counts <bcp14>MUST NOT</bcp14> be summed and labeled as original packets lost end to end. Establishing original-packet loss requires a separately defined source population and correlation across replicas.</t>
      <t>Counting under this profile <bcp14>MUST</bcp14> be exhaustive for the configured population at the enforcing point. Sampled, statistically scaled, or inferred counts <bcp14>MUST NOT</bcp14> be presented as profile counts. A loss of meter notifications or counter coverage invalidates the affected complete interval, even if IPFIX export transport is reliable. The exporter <bcp14>MUST NOT</bcp14> emit a complete-profile record spanning missing observations or a period when required timing evidence was invalid. It can close a shorter fully observed interval at a known boundary; otherwise it must use reporting outside this profile. Excluded time periods <bcp14>MUST</bcp14> remain visible as coverage gaps, including when no qualifying discard was observed.</t>
    </section>
    <section anchor="record-scope">
      <name>Data Records and Scope</name>
      <t>A complete-profile Data Record <bcp14>MUST</bcp14> contain exactly one top-level occurrence of each field in <xref target="required-fields"/>. Fields <bcp14>MUST</bcp14> be identified by their Information Element identity, including enterprise identity where applicable, rather than Template position. Separate Options Records or structured-data nesting <bcp14>MUST NOT</bcp14> substitute for these fields in this profile.</t>
      <table anchor="required-fields">
        <name>Required Data Record Fields</name>
        <thead>
          <tr>
            <th>Information Element</th>
            <th>ElementId</th>
            <th>Type</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>observationPointId</td>
            <td>138</td>
            <td>U64</td>
          </tr>
          <tr>
            <td>flowId</td>
            <td>148</td>
            <td>U64</td>
          </tr>
          <tr>
            <td>forwardingStatus</td>
            <td>89</td>
            <td>U32</td>
          </tr>
          <tr>
            <td>droppedPacketDeltaCount</td>
            <td>133</td>
            <td>U64</td>
          </tr>
          <tr>
            <td>monitoringIntervalStartMilliSeconds</td>
            <td>359</td>
            <td>DTms</td>
          </tr>
          <tr>
            <td>monitoringIntervalEndMilliSeconds</td>
            <td>360</td>
            <td>DTms</td>
          </tr>
          <tr>
            <td>deadlineBudgetNanoseconds</td>
            <td>TBD-IE1</td>
            <td>U64</td>
          </tr>
          <tr>
            <td>deadlineComparisonUncertaintyNanoseconds</td>
            <td>TBD-IE2</td>
            <td>U64</td>
          </tr>
        </tbody>
      </table>
      <t>In Table <xref target="required-fields" format="counter"/>, U64 denotes unsigned64, U32 denotes unsigned32, and DTms denotes dateTimeMilliseconds. These abbreviations do not change the IPFIX abstract data types.</t>
      <t>The Observation Domain ID in the IPFIX Message Header and observationPointId identify the enforcing observation scope. flowId identifies a Flow within that Observation Domain. The configured Flow definition <bcp14>MUST</bcp14> specify direction, packet-selection keys, and any branch or interface distinction needed to identify the counted population. This profile further partitions that population by primary reason, budget, and reference-event interpretation. Each partition <bcp14>MUST</bcp14> have a distinct flowId with independent delta accounting. Additional Flow Key fields <bcp14>MAY</bcp14> be included. A policy change <bcp14>MUST</bcp14> close the affected old partition before opening a new one.</t>
      <t>droppedPacketDeltaCount counts qualifying discards of this Flow since its previous report, or since the start of metering for its first report. The exporter <bcp14>MUST</bcp14> advance the accounting boundary once for each emitted delta. A record <bcp14>MUST NOT</bcp14> mix reasons, budgets, or reference-event interpretations, or include a cumulative count in this delta field. Different Templates do not create disjoint populations. An aggregate exported through another Template or management interface <bcp14>MUST NOT</bcp14> be added to these deltas if it includes the same events.</t>
      <t>The two monitoring-interval IEs give the absolute start and end of the metering interval represented by the delta. Start <bcp14>MUST</bcp14> be no later than end. Event membership <bcp14>MUST</bcp14> use non-overlapping intervals: the start is inclusive and the end is exclusive, and an event exactly on a boundary belongs to the new interval. The Metering Process <bcp14>MUST</bcp14> preserve this membership at its internal timing precision. Millisecond export labels can be equal for a short interval; they alone establish neither event order nor disjointness. Export Time and flowStart/flowEnd <bcp14>MUST NOT</bcp14> substitute for these monitoring boundaries.</t>
      <t>A zero delta is valid only for a fully observed interval with the profile enabled and a known, constant budget and measurement context. Its uncertainty field <bcp14>MUST</bcp14> carry a valid comparison-error bound applicable throughout that interval; it <bcp14>MUST NOT</bcp14> be obtained by taking the maximum of an empty set or by assuming zero error. Silence, missing data, or disabled metering <bcp14>MUST NOT</bcp14> be interpreted as a zero delta.</t>
      <t>The exporter <bcp14>MUST</bcp14> close a delta before its count would exceed unsigned64. It <bcp14>MUST NOT</bcp14> wrap or saturate the value and claim complete coverage. A reset of a source counter, Metering Process restart, unexplained counter decrease, or lost event state <bcp14>MUST</bcp14> close the affected accounting context. The exporter <bcp14>MUST NOT</bcp14> calculate a delta across an ambiguous discontinuity. A final complete pre-reset interval can be exported only if its boundary and count were preserved; otherwise that interval is incomplete.</t>
      <t>After an accounting discontinuity, metering <bcp14>MUST</bcp14> restart from a known boundary with a fresh flowId. An exporter <bcp14>MUST NOT</bcp14> reuse a flowId for a different population within the same Observation Domain during a Transport Session. If this cannot be ensured after restart, it <bcp14>MUST</bcp14> establish a new Transport Session and provision its context before profile export resumes. A monitoring wall-clock discontinuity likewise closes the old interval; subsequent records require a re-established time mapping and fresh accounting context. No new counter-generation IE is required.</t>
    </section>
    <section anchor="ies">
      <name>Information Element Definitions</name>
      <section anchor="budget-ie">
        <name>deadlineBudgetNanoseconds</name>
        <t>This unsigned64 quantity is the common inclusive deadline budget B, in nanoseconds, for the packet population reported by the record. Its reference and enforcement events are defined by the provisioned measurement context. It is a configured duration, not a timestamp, measured delay, or Flow lifetime. Zero denotes a real zero-duration budget. All values from 0 through 18446744073709551615 are valid quantities; no value denotes unavailable.</t>
        <t>A complete-profile record <bcp14>MUST</bcp14> carry the exact budget as an integral number of nanoseconds. A negative, fractional-nanosecond, or out-of-range budget <bcp14>MUST NOT</bcp14> be rounded, wrapped, or clamped into a profile value. The exporter <bcp14>MUST</bcp14> use other reporting when the budget is unrepresentable.</t>
      </section>
      <section anchor="uncertainty-ie">
        <name>deadlineComparisonUncertaintyNanoseconds</name>
        <t>This unsigned64 quantity is an upper bound, in nanoseconds, on the absolute error of the elapsed-time evidence used for deadline classification. For a nonzero delta it is the maximum of the valid per-packet bounds used for its members. For a zero delta it is a valid bound applicable throughout the monitored interval, as specified in <xref target="record-scope"/>. It describes the comparison at the enforcing point, not the configured budget's accuracy, the accuracy of the packet count, or the monitoring timestamps.</t>
        <t>The exporter <bcp14>MUST</bcp14> round each per-packet bound upward to integral nanoseconds and use that conservative bound in the expiration test before aggregating. If the test then fails, the packet is not eligible. Zero is allowed only when a zero bound is justified. Every unsigned64 value, including the maximum, is a quantity rather than an unavailable sentinel. Unknown or unrepresentable uncertainty requires omission of this IE and therefore precludes a complete-profile record; it <bcp14>MUST NOT</bcp14> be replaced by zero or saturation.</t>
        <t>The aggregate bound does not allow a collector to repeat every per-packet comparison, because the elapsed times are not exported. Acceptance of an authenticated record is an assertion by the exporter, not independent proof of its clock calibration or discard decision.</t>
      </section>
      <section anchor="reuse">
        <name>Reuse of Existing Information Elements</name>
        <t>The registered Flow duration IEs describe first-to-last packet observation, and the path-delay IEs describe measured delay statistics. Neither is a configured deadline budget. absoluteError (IE 320) and relativeError (IE 321) concern error of an associated reported measured value; associating them with the budget or discard counter would misstate the measurement. This profile does not export the elapsed-time measurements themselves. Its uncertainty IE is restricted to their classification error bound. A future profile exporting the underlying measurements should reconsider reuse of absoluteError. Existing scopes, timestamps, and packet counters are retained; no generic identity, timestamp, or loss-counter IE is introduced.</t>
      </section>
    </section>
    <section anchor="collection">
      <name>Templates, Encoding, and Collection</name>
      <t>Before accepting a Template as this profile, a collector <bcp14>MUST</bcp14> have authenticated configuration associating the exporter identity, Transport Session, Observation Domain ID, and Template ID with this specification, the Flow definition, enforcement point, reference and enforcement events, budget source, clock interpretation, exhaustive metering mode, and discard precedence. It <bcp14>MUST</bcp14> also know how metering discontinuities and export-coverage gaps are signaled. These are managed-domain deployment prerequisites, not an in-band discovery protocol. An unknown context <bcp14>MUST NOT</bcp14> produce profile-qualified counts.</t>
      <t>Templates <bcp14>MUST</bcp14> be resolved within the correct Transport Session and Observation Domain. Withdrawal, replacement, or expiration of a Template <bcp14>MUST</bcp14> invalidate its profile association. A replacement or reused Template ID <bcp14>MUST</bcp14> be validated and associated anew before use. An unchanged periodic Template refresh does not reset metering or create a new delta. Session termination <bcp14>MUST</bcp14> invalidate retained Template and profile associations. Matching numeric identifiers in different sessions are not evidence of continuity.</t>
      <t>forwardingStatus retains the registered unsigned32 abstract type and the least-significant-octet layout specified in <xref target="RFC9710"/>. The new complete value, denoted TBD-DROP, consists of status bits 10 and the six-bit reason selected by IANA. TBD-DROP denotes the entire status octet, not just its reason bits. Exporters <bcp14>SHOULD</bcp14> use the one-octet reduced-size encoding of the current layout. Collectors <bcp14>MUST</bcp14> accept legal one- through four-octet encodings with the same value and zero higher octets. Nonzero higher bits do not describe this profile and <bcp14>MUST NOT</bcp14> be masked off to force acceptance.</t>
      <t>The five unsigned64 fields in <xref target="required-fields"/> use one through eight octets under the reduced-size encoding rules of <xref target="RFC7011"/>. The two dateTimeMilliseconds fields use exactly eight octets. Required fields <bcp14>MUST NOT</bcp14> use zero-length or variable-length encodings, and duplicate required fields are invalid even when their values agree. An enterprise-specific IE with the same numeric ElementId does not satisfy a required standard IE. Additional fields <bcp14>MAY</bcp14> be included and are processed using their valid Template definitions.</t>
      <t>A collector <bcp14>MUST</bcp14> check field identity, multiplicity, legal encoding lengths, record truncation, time-interval validity, the assigned forwarding value, and its provisioned context before publishing a profile-qualified count. It <bcp14>MUST NOT</bcp14> infer unknown fields from position or an unknown reason from nearby numeric assignments. Ordinary IPFIX processing can retain a generic dropped status without recognizing the reason. Invalid records <bcp14>MUST NOT</bcp14> contribute to the profile count; the collector <bcp14>SHOULD</bcp14> retain a bounded diagnostic. Base IPFIX Set lengths, padding, Template, and transport rules still apply.</t>
      <t>This profile adds no record-acknowledgment or replay protocol. IPFIX Sequence Numbers count exported Data Records; they are not globally unique record identifiers. Exporters <bcp14>MUST NOT</bcp14> replay an already-accounted delta as a new interval without an external reconciliation mechanism. Collectors <bcp14>MUST NOT</bcp14> deduplicate solely on equal count values, millisecond interval labels, or Template IDs. Conversely, a new session or a new Template does not make replayed events new events.</t>
      <t>Collectors <bcp14>MUST</bcp14> distinguish a valid received partial count from a complete interval total. Meter loss, ambiguous reset, export loss, unresolved replay, or loss of collector state <bcp14>MUST</bcp14> mark the affected coverage incomplete. They <bcp14>MUST NOT</bcp14> report an exhaustive total until event disjointness and complete metering and export coverage are established. An absence of IPFIX Sequence Number gaps alone does not prove meter completeness. A deployment <bcp14>SHOULD</bcp14> use reliable, authenticated, integrity-protected IPFIX transport permitted by <xref target="RFC7011"/>; confidentiality <bcp14>MUST</bcp14> also be provided where the deployment requires it.</t>
    </section>
    <section anchor="deployment">
      <name>Deployment and Acceptance</name>
      <t>A focused deployment consists of an existing network deadline enforcement function, a Metering Process attached to its final drop decision, an IPFIX Exporting Process, and an authorized collector. A local ingress reference avoids inter-node timestamp conversion, but still requires a justified local elapsed-time error bound. A source-to-enforcer budget additionally requires an authenticated source-time interpretation and a valid inter-clock bound. An application timeout monitor cannot substitute for either arrangement.</t>
      <t>Before enabling profile-qualified reporting, an operator <bcp14>MUST</bcp14> establish the measurement and accounting configuration required above, including the behavior on clock invalidity, observation loss, reset, and export interruption. If a device supplies only sampled observations, an undifferentiated queue-drop count, or no justified timing bound, it <bcp14>MUST NOT</bcp14> claim conformance to this profile. The profile does not require that an otherwise incapable device acquire a new forwarding function.</t>
      <t>Deployment acceptance <bcp14>SHOULD</bcp14> compare independently retained enforcement decisions with exported records using controlled packet traffic. The comparison should cover on-time forwarding, equality, certain expiry, clock invalidity, competing reasons, replica and mirror handling, a policy change during a window, counter reset, export interruption, and Template reuse. It should reconcile each accepted delta to a disjoint set of actual local discards. At least two independently developed collectors should agree on values and rejection cases, including legal reduced-size encodings and reordered Template fields. A purely synthetic trace validates reporting logic; it does not establish the observability or performance of a production device.</t>
      <t>Acceptance should also measure metering overhead, export volume, and collector state at the intended Flow cardinality and reporting interval. If the instrumentation cannot preserve the defined coverage at that load, the deployment must lower the load or report incomplete coverage. No throughput, latency benefit, particular network-device implementation, or upper-layer application framework integration is implied by this specification.</t>
    </section>
    <section anchor="examples">
      <name>Examples and Required Boundary Behavior</name>
      <t>The following cases illustrate the normative rules. Durations are in nanoseconds and the stated primary cause is assumed to be verified at the enforcing point.</t>
      <table anchor="classification-tests">
        <name>Classification and Accounting Cases</name>
        <thead>
          <tr>
            <th>Case</th>
            <th>Evidence</th>
            <th>Required result</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>Certain expiration</td>
            <td>B=1000, e=1012, u=5; deadline caused discard</td>
            <td>Eligible</td>
          </tr>
          <tr>
            <td>Equal boundary</td>
            <td>B=1000, e=1005, u=5</td>
            <td>Not eligible</td>
          </tr>
          <tr>
            <td>Uncertainty crosses boundary</td>
            <td>B=1000, e=1002, u=5</td>
            <td>Not eligible</td>
          </tr>
          <tr>
            <td>Subtraction underflow</td>
            <td>B=0, e=1, u=2</td>
            <td>Not eligible; no wrap</td>
          </tr>
          <tr>
            <td>Addition overflow</td>
            <td>B=18446744073709551615, e=B, u=1</td>
            <td>Not eligible; do not compute wrapping B+u</td>
          </tr>
          <tr>
            <td>Zero budget</td>
            <td>B=0, e=1, u=0; deadline caused discard</td>
            <td>Eligible only with a justified zero error bound</td>
          </tr>
          <tr>
            <td>Unknown uncertainty</td>
            <td>e=1200, B=1000; no valid u</td>
            <td>No expiry assertion; no fabricated zero</td>
          </tr>
          <tr>
            <td>Different primary cause</td>
            <td>ACL rejects an already late packet</td>
            <td>Retain ACL reason</td>
          </tr>
          <tr>
            <td>Forwarded or predicted miss</td>
            <td>No actual deadline-expired discard</td>
            <td>Not eligible</td>
          </tr>
          <tr>
            <td>Duplicate notification</td>
            <td>Two notifications of one local discard</td>
            <td>One increment</td>
          </tr>
          <tr>
            <td>Replica discards</td>
            <td>Two service copies discarded on two branches</td>
            <td>Two local events; no original-packet-loss assertion</td>
          </tr>
          <tr>
            <td>Reset during interval</td>
            <td>Final pre-reset count not preserved</td>
            <td>Incomplete coverage; fresh accounting context</td>
          </tr>
        </tbody>
      </table>
      <t>For 17 qualifying discards of a Flow with B=1000 ns and maximum valid comparison uncertainty 5 ns, one parsed record is shown below. The interval labels are absolute epoch milliseconds. All 17 events must individually have passed their own comparison before aggregation. TBD-DROP and the new IE identifiers are symbolic pending IANA allocation.</t>
      <sourcecode type="text">
observationPointId = 7
flowId = 42
forwardingStatus = TBD-DROP     (complete status octet)
droppedPacketDeltaCount = 17
monitoringIntervalStartMilliSeconds = 1793325600000
monitoringIntervalEndMilliSeconds = 1793325601000
deadlineBudgetNanoseconds = 1000
deadlineComparisonUncertaintyNanoseconds = 5

Eight-octet network-order encodings of quantities:
  count 17:    00 00 00 00 00 00 00 11
  budget 1000: 00 00 00 00 00 00 03 e8
  bound 5:     00 00 00 00 00 00 00 05</sourcecode>
    <t>Profile conformance MUST be verified at both the IPFIX Exporter and Collector. The Exporter MUST preserve primary-cause precedence with IE 89 (<tt>forwardingStatus</tt>, <tt>Status 10b: Dropped</tt>) and enforce the clock-uncertainty comparison bound and zero-count uncertainty rule. The Collector MUST distinguish a verified zero-discard monitoring interval from missing export records, an unreceived Options Template, or a counter discontinuity. Conformance tests MUST include: (1) a packet simultaneously denied by access control and arriving after its deadline (which MUST be attributed to policy drop rather than deadline discard), (2) replicated packets discarded on individual branches, and (3) packets whose residence time falls within the clock uncertainty bound.</t></section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>The security considerations of <xref target="RFC7011"/> apply. Forged or replayed discard telemetry can misdirect operational decisions. A collector <bcp14>MUST</bcp14> authenticate and authorize the exporter for the claimed Observation Point and protect the associated profile configuration. Reports received over unprotected transport <bcp14>MUST NOT</bcp14> be used as authoritative input to security-sensitive automated control. Reception of an old report does not make its measurement current.</t>
      <t>Authenticated export does not prove the truth of a timestamp, error bound, or discard reason. The enforcing implementation <bcp14>MUST</bcp14> validate the provenance and clock context of its timing inputs and reject invalid evidence for this profile. A malicious packet source must not be able to supply an untrusted timestamp or budget that is reported as an authoritative policy without the policy's validation. Collectors <bcp14>MUST</bcp14> preserve unknown and incomplete states; they cannot reconstruct hidden per-packet timing evidence from aggregate fields.</t>
      <t>Flow identifiers, budgets, and timing quality can expose service activity and network design. Access <bcp14>MUST</bcp14> be restricted to authorized consumers, and operators <bcp14>SHOULD</bcp14> minimize retained per-flow detail and retention time. Parsers <bcp14>MUST</bcp14> bound Template, record, diagnostic, and buffering resources. Collectors <bcp14>MUST NOT</bcp14> wait indefinitely for missing context. This reporting profile grants no authority to change packet-discard policies.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="iana-reason">
        <name>Forwarding Status Reason</name>
        <t>IANA is requested to allocate one unassigned complete status value in the "Status 10b: Dropped" registry under "IP Flow Information Export (IPFIX) Entities" <xref target="IANA-IPFIX"/>, using its existing Expert Review policy. The associated status is 10 (binary), and the reason occupies the low six bits, as specified in <xref target="RFC9710"/>. No existing assignment or registration policy is changed.</t>
        <table anchor="reason-registration">
          <name>Requested Forwarding Status Entry</name>
          <thead>
            <tr>
              <th>Registry column</th>
              <th>Requested entry</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>Binary</td>
              <td>10 rrrrrr (rrrrrr selected by IANA)</td>
            </tr>
            <tr>
              <td>Hex</td>
              <td>TBD-DROP, the complete octet with status 10</td>
            </tr>
            <tr>
              <td>Description</td>
              <td>Deadline expired</td>
            </tr>
            <tr>
              <td>Reference</td>
              <td>This document, Sections <xref target="comparison" format="counter"/> and <xref target="accounting" format="counter"/>
              </td>
            </tr>
          </tbody>
        </table>
        <t>The meaning is an actual packet discard whose primary cause is certain expiration of its configured time budget under <xref target="comparison"/>. It is distinct from IP TTL or Hop Limit expiration, uncertain timing, and predicted future infeasibility. This Internet-Draft selects no numeric value.</t>
      </section>
      <section anchor="iana-ies">
        <name>Information Element Registrations</name>
        <t>IANA is requested to allocate two Information Elements in the "IPFIX Information Elements" registry under "IP Flow Information Export (IPFIX) Entities", using the existing Expert Review policy and the guidelines in <xref target="RFC7013"/>. Both have status current, revision 0, range 0 through 18446744073709551615, and reference this document. Their registry descriptions are the definitions in <xref target="budget-ie"/> and <xref target="uncertainty-ie"/>, respectively. The registration date is the date of allocation. No new subregistry is requested.</t>
        <t>The Budget IE is named deadlineBudgetNanoseconds. The Uncertainty IE is named deadlineComparisonUncertaintyNanoseconds.</t>
        <table anchor="ie-registrations">
          <name>Requested Information Elements</name>
          <thead>
            <tr>
              <th>Property</th>
              <th>Budget IE</th>
              <th>Uncertainty IE</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>ElementId</td>
              <td>TBD-IE1</td>
              <td>TBD-IE2</td>
            </tr>
            <tr>
              <td>Abstract data type</td>
              <td>unsigned64</td>
              <td>unsigned64</td>
            </tr>
            <tr>
              <td>Data type semantics</td>
              <td>quantity</td>
              <td>quantity</td>
            </tr>
            <tr>
              <td>Units</td>
              <td>nanoseconds</td>
              <td>nanoseconds</td>
            </tr>
            <tr>
              <td>Description and additional information</td>
              <td>
                <xref target="budget-ie"/>
              </td>
              <td>
                <xref target="uncertainty-ie"/>
              </td>
            </tr>
          </tbody>
        </table>
        <t>Registration policies use the terminology of <xref target="RFC8126"/>. The additions preserve existing IPFIX scopes, counters, and encoding rules; the rationale for two new quantities is given in <xref target="reuse"/>.</t>
      </section>
      <section anchor="experiments">
        <name>Use Before Allocation</name>
        <t>Experimental implementations <bcp14>MUST NOT</bcp14> transmit an unassigned standard ElementId or forwardingStatus value as though IANA had allocated it. A private experiment <bcp14>MAY</bcp14> use enterprise-specific IEs under its legitimately assigned Private Enterprise Number with explicit collector configuration. Such an experiment must also carry any private deadline classification in an enterprise-specific IE; an enterprise IE does not create a private reason space inside standard forwardingStatus. Standard forwardingStatus can remain at its existing generic dropped value. This is a private experimental mapping, not wire interoperability with the future allocated profile.</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="IANA-IPFIX" target="https://www.iana.org/assignments/ipfix/">
          <front>
            <title>IP Flow Information Export (IPFIX) Entities</title>
            <author fullname="IANA"/>
            <date year="2026" month="09"/>
          </front>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner"/>
            <date year="1997" month="03"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC7011" target="https://www.rfc-editor.org/info/rfc7011">
          <front>
            <title>Specification of the IP Flow Information Export (IPFIX) Protocol for the Exchange of Flow Information</title>
            <author initials="B." surname="Claise" role="editor"/>
            <author initials="B." surname="Trammell" role="editor"/>
            <author initials="P." surname="Aitken"/>
            <date year="2013" month="09"/>
          </front>
          <seriesInfo name="STD" value="77"/>
          <seriesInfo name="RFC" value="7011"/>
          <seriesInfo name="DOI" value="10.17487/RFC7011"/>
        </reference>
        <reference anchor="RFC7012" target="https://www.rfc-editor.org/info/rfc7012">
          <front>
            <title>Information Model for IP Flow Information Export (IPFIX)</title>
            <author initials="B." surname="Claise" role="editor"/>
            <author initials="B." surname="Trammell" role="editor"/>
            <date year="2013" month="09"/>
          </front>
          <seriesInfo name="RFC" value="7012"/>
          <seriesInfo name="DOI" value="10.17487/RFC7012"/>
        </reference>
        <reference anchor="RFC7013" target="https://www.rfc-editor.org/info/rfc7013">
          <front>
            <title>Guidelines for Authors and Reviewers of IP Flow Information Export (IPFIX) Information Elements</title>
            <author initials="B." surname="Trammell"/>
            <author initials="B." surname="Claise"/>
            <date year="2013" month="09"/>
          </front>
          <seriesInfo name="BCP" value="184"/>
          <seriesInfo name="RFC" value="7013"/>
          <seriesInfo name="DOI" value="10.17487/RFC7013"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba"/>
            <date year="2017" month="05"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9710" target="https://www.rfc-editor.org/info/rfc9710">
          <front>
            <title>Simple Fixes to the IP Flow Information Export (IPFIX) Entities IANA Registry</title>
            <author initials="M." surname="Boucadair"/>
            <author initials="B." surname="Claise"/>
            <date year="2025" month="02"/>
          </front>
          <seriesInfo name="RFC" value="9710"/>
          <seriesInfo name="DOI" value="10.17487/RFC9710"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="DEADLINE-FWD" target="https://datatracker.ietf.org/doc/html/draft-ietf-detnet-deadline-based-forwarding-01">
          <front>
            <title>Deadline Based Deterministic Forwarding</title>
            <author initials="S." surname="Peng"/>
            <author initials="Z." surname="Du"/>
            <author initials="K." surname="Basu"/>
            <author initials="Z." surname="Cheng"/>
            <author initials="D." surname="Yang"/>
            <author initials="C." surname="Liu"/>
            <date year="2026" month="06"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-detnet-deadline-based-forwarding-01"/>
        </reference>
        <reference anchor="DISCARD-MODEL" target="https://datatracker.ietf.org/doc/html/draft-ietf-opsawg-discardmodel-16">
          <front>
            <title>Information and Data Models for Packet Discard Reporting</title>
            <author initials="J." surname="Evans" role="editor"/>
            <author initials="O." surname="Pylypenko" role="editor"/>
            <author initials="J." surname="Haas"/>
            <author initials="A." surname="Kadosh"/>
            <author initials="M." surname="Boucadair" role="editor"/>
            <date year="2026" month="07"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-discardmodel-16"/>
        </reference>
        <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author initials="M." surname="Cotton"/>
            <author initials="B." surname="Leiba"/>
            <author initials="T." surname="Narten"/>
            <date year="2017" month="06"/>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC8655" target="https://www.rfc-editor.org/info/rfc8655">
          <front>
            <title>Deterministic Networking Architecture</title>
            <author initials="N." surname="Finn"/>
            <author initials="P." surname="Thubert"/>
            <author initials="B." surname="Varga"/>
            <author initials="J." surname="Farkas"/>
            <date year="2019" month="10"/>
          </front>
          <seriesInfo name="RFC" value="8655"/>
          <seriesInfo name="DOI" value="10.17487/RFC8655"/>
        </reference>
      </references>
    </references>
  </back>
</rfc>
