Documentation: netlink: specs: tc: Add DualPI2 specification

Introduce the specification of tc qdisc DualPI2 stats and attributes,
which is the reference implementation of IETF RFC9332 DualQ Coupled AQM
(https://datatracker.ietf.org/doc/html/rfc9332) providing two different
queues: low latency queue (L-queue) and classic queue (C-queue).

Signed-off-by: Chia-Yu Chang <chia-yu.chang@nokia-bell-labs.com>
Link: https://patch.msgid.link/20250722095915.24485-7-chia-yu.chang@nokia-bell-labs.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Chia-Yu Chang 2025-07-22 11:59:15 +02:00 committed by Jakub Kicinski
parent 032f0e9e15
commit 68db0ff2f7

View File

@ -56,6 +56,23 @@ definitions:
- tundf
- tunoam
- tuncrit
-
name: dualpi2-drop-overload
type: enum
entries: [overflow, drop]
-
name: dualpi2-drop-early
type: enum
entries: [drop-dequeue, drop-enqueue]
-
name: dualpi2-ecn-mask
type: enum
value-start: 1
entries: [l4s-ect, cla-ect, any-ect]
-
name: dualpi2-split-gso
type: enum
entries: [no-split-gso, split-gso]
-
name: tc-stats
type: struct
@ -825,6 +842,58 @@ definitions:
-
name: drop-overmemory
type: u32
-
name: tc-dualpi2-xstats
type: struct
members:
-
name: prob
type: u32
doc: Current base PI probability
-
name: delay-c
type: u32
doc: Current C-queue delay in microseconds
-
name: delay-l
type: u32
doc: Current L-queue delay in microseconds
-
name: pkts-in-c
type: u32
doc: Number of packets enqueued in the C-queue
-
name: pkts-in-l
type: u32
doc: Number of packets enqueued in the L-queue
-
name: maxq
type: u32
doc: Maximum number of packets seen by the DualPI2
-
name: ecn-mark
type: u32
doc: All packets marked with ECN
-
name: step-mark
type: u32
doc: Only packets marked with ECN due to L-queue step AQM
-
name: credit
type: s32
doc: Current credit value for WRR
-
name: memory-used
type: u32
doc: Memory used in bytes by the DualPI2
-
name: max-memory-used
type: u32
doc: Maximum memory used in bytes by the DualPI2
-
name: memory-limit
type: u32
doc: Memory limit in bytes
-
name: tc-fq-pie-xstats
type: struct
@ -848,7 +917,7 @@ definitions:
-
name: ecn-mark
type: u32
doc: Packets marked with ecn
doc: Packets marked with ECN
-
name: new-flow-count
type: u32
@ -991,7 +1060,7 @@ definitions:
-
name: ecn-mark
type: u32
doc: Packets marked with ecn
doc: Packets marked with ECN
-
name: tc-red-xstats
type: struct
@ -2284,6 +2353,78 @@ attribute-sets:
-
name: quantum
type: u32
-
name: dualpi2-attrs
name-prefix: tca-dualpi2-
attributes:
-
name: limit
type: u32
doc: Limit of total number of packets in queue
-
name: memory-limit
type: u32
doc: Memory limit of total number of packets in queue
-
name: target
type: u32
doc: Classic target delay in microseconds
-
name: tupdate
type: u32
doc: Drop probability update interval time in microseconds
-
name: alpha
type: u32
doc: Integral gain factor in Hz for PI controller
-
name: beta
type: u32
doc: Proportional gain factor in Hz for PI controller
-
name: step-thresh-pkts
type: u32
doc: L4S step marking threshold in packets
-
name: step-thresh-us
type: u32
doc: L4S Step marking threshold in microseconds
-
name: min-qlen-step
type: u32
doc: Packets enqueued to the L-queue can apply the step threshold
when the queue length of L-queue is larger than this value.
(0 is recommended)
-
name: coupling
type: u8
doc: Probability coupling factor between Classic and L4S
(2 is recommended)
-
name: drop-overload
type: u8
doc: Control the overload strategy (drop to preserve latency or
let the queue overflow)
enum: dualpi2-drop-overload
-
name: drop-early
type: u8
doc: Decide where the Classic packets are PI-based dropped or marked
enum: dualpi2-drop-early
-
name: c-protection
type: u8
doc: Classic WRR weight in percentage (from 0 to 100)
-
name: ecn-mask
type: u8
doc: Configure the L-queue ECN classifier
enum: dualpi2-ecn-mask
-
name: split-gso
type: u8
doc: Split aggregated skb or not
enum: dualpi2-split-gso
-
name: ematch-attrs
name-prefix: tca-ematch-
@ -3708,6 +3849,9 @@ sub-messages:
-
value: drr
attribute-set: drr-attrs
-
value: dualpi2
attribute-set: dualpi2-attrs
-
value: etf
attribute-set: etf-attrs
@ -3875,6 +4019,9 @@ sub-messages:
-
value: codel
fixed-header: tc-codel-xstats
-
value: dualpi2
fixed-header: tc-dualpi2-xstats
-
value: fq
fixed-header: tc-fq-qd-stats