| Internet-Draft | Adaptive Queue Management | June 2026 |
| Xu, et al. | Expires 26 December 2026 | [Page] |
Active Queue Management (AQM) manages queue depth by controlling packet admission at the point of enqueue. This document specifies a complementary queue management behavior that operates on packets already admitted to a queue: when the queue depth exceeds a configurable threshold, the maximum time a packet may remain queued before being dropped is reduced. When congestion subsides, the duration reverts to its base value. This per-queue dropping behavior helps manage queue depth during congestion by releasing resources from queues where packets have been waiting longest, complementing AQM without modifying its signaling semantics.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 26 December 2026.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
[RFC7567] recommends the deployment of Active Queue Management (AQM) to manage queue depth and reduce latency in network devices. AQM operates at the point of enqueue: it decides whether to admit, drop, or ECN-mark [RFC3168] an arriving packet based on current queue state. [RFC7806] establishes that queuing and dropping are conceptually separate operations that work in series. AQM procedures such as CoDel [RFC8289] and PIE [RFC8033] focus on controlling queue depth by signaling congestion to transport endpoints.¶
A related but distinct concern is managing packets that have already been admitted to a queue and have been waiting for transmission. Each queued packet has a maximum queuing duration — the upper bound on how long it may remain in the queue before being dropped. In many implementations, this duration is a fixed value that does not vary with queue state. During sustained congestion, packets continue to occupy queue resources for the full duration even when their transmission is unlikely, delaying the release of resources needed by other queues.¶
This document specifies an adaptive queue management behavior that addresses this concern: when the queue depth exceeds a congestion threshold, the maximum queuing duration for packets in that queue is reduced, enabling faster resource release. When congestion subsides, the duration reverts to its base value. This behavior operates within the dropping framework of [RFC7806] and complements, rather than replaces, AQM.¶
The behavior is specified in terms of externally observable characteristics — the per-queue maximum queuing duration and the queue-depth thresholds that govern its value — rather than any particular implementation. This follows the approach used for the Differentiated Services per-hop behaviors in [RFC2597] and [RFC3246], which likewise define node-local forwarding behavior by its observable effect. The behavior is independent of, and may be deployed alongside, AQM algorithms such as CoDel [RFC8289] and PIE [RFC8033]; Section 4.4 describes the considerations when both are active.¶
This document defines a per-queue dropping behavior. It does not define new on-the-wire protocol elements, packet formats, or congestion signals. The behavior is local to the device implementing it and is transparent to endpoints.¶
This behavior MUST NOT be used as a trigger for ECN marking [RFC3168]. Dropping of queued packets due to duration expiry is local queue management, not congestion signaling.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
This document uses terminology consistent with [RFC7567] and [RFC7806].¶
Section 3 of [RFC7567] discusses the importance of managing queue depth. When a device serves multiple output queues with different traffic classes [RFC2474], sustained congestion in one queue has broader effects:¶
AQM addresses queue depth by controlling packet admission. This document addresses the complementary problem: managing packets that have already been admitted and are occupying queue resources during congestion.¶
Each output queue SHOULD have independently configurable parameters:¶
The device monitors the queue depth of each output queue per Section 3 of [RFC7567]. When the queue depth exceeds the Congestion Threshold, the queue enters the congested state. When it falls below the Restoration Threshold, the queue returns to the non-congested state.¶
The hysteresis between thresholds prevents oscillation. Implementations MAY additionally require the threshold to be exceeded for a configurable minimum interval before transitioning (dampening).¶
When a queue enters the congested state, the maximum queuing duration for that queue MUST be set to the Reduced Duration. A packet whose time in the queue has reached or exceeded the currently effective maximum queuing duration SHOULD be dropped rather than transmitted. Because packets are dequeued in order, this condition is evaluated at the head of the queue; an implementation MAY also evaluate it elsewhere in the queue, but is not required to.¶
When a queue returns to the non-congested state, the maximum queuing duration MUST revert to the Base Duration. Reversion SHOULD be applied after a configurable hold-down period to avoid oscillation.¶
A packet dropped under this behavior MUST NOT have its drop substituted by an ECN mark [RFC3168]: unlike AQM congestion signaling, a duration-expiry drop indicates that the packet is no longer useful to deliver, and an ECN mark would not convey that.¶
This behavior and an AQM algorithm [RFC7567] act at different points: AQM acts at enqueue, controlling admission and congestion signaling, while this behavior acts on already-queued packets at dequeue. Both may drop packets based on time in queue. When both are enabled on the same queue, the Base Duration SHOULD be set no smaller than the target delay of the AQM algorithm, so that the Base Duration does not pre-empt normal AQM operation under light load and takes effect only as a congestion backstop. Operators SHOULD monitor the drop counters of both mechanisms (Section 5) to detect compounded loss.¶
In devices supporting Differentiated Services [RFC2474], parameters MAY be differentiated by traffic class. Higher-priority classes SHOULD have longer Base Durations and less aggressive Reduced Durations. The mapping is a local policy decision.¶
+---------+----------+-------------------+ | Traffic | Base | Reduced | | Class | Duration | Duration | +---------+----------+-------------------+ | EF | D | 50-75% of D | | AF | D | 25-50% of D | | BE | D | 10-25% of D | +---------+----------+-------------------+ D = device default. Values are illustrative.
A future document may define a YANG [RFC7950] data model:¶
module: ietf-adaptive-queue-mgmt
+--rw profiles* [name]
| +--rw name string
| +--rw base-duration uint32 (microseconds)
| +--rw reduced-duration uint32 (microseconds)
| +--rw congestion-threshold uint32 (percent)
| +--rw restoration-threshold uint32 (percent)
| +--rw hold-down uint32 (milliseconds)
+--rw bindings* [interface queue-id]
+--rw interface if:interface-ref
+--rw queue-id uint8
+--rw profile -> /profiles/name
+--ro state
+--ro mode enumeration {base, reduced}
+--ro depth uint64
+--ro drops-by-duration yang:counter64
+--ro transitions yang:counter64
¶
The security considerations of [RFC7567] apply. Configuration MUST be restricted to authorized administrators via standard access control (e.g., [RFC8341]). Telemetry does not contain user traffic but may reveal congestion patterns; access SHOULD be restricted. Implementations SHOULD log mode transitions to detect anomalous conditions.¶
This document has no IANA actions.¶
The authors acknowledge the IETF's work on queue management [RFC7567] [RFC7806] which established the framework this document builds upon.¶