[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250307172833.97732-2-chia-yu.chang@nokia-bell-labs.com>
Date: Fri, 7 Mar 2025 18:28:31 +0100
From: chia-yu.chang@...ia-bell-labs.com
To: netdev@...r.kernel.org,
dave.taht@...il.com,
pabeni@...hat.com,
jhs@...atatu.com,
kuba@...nel.org,
stephen@...workplumber.org,
xiyou.wangcong@...il.com,
jiri@...nulli.us,
davem@...emloft.net,
edumazet@...gle.com,
horms@...nel.org,
andrew+netdev@...n.ch,
ij@...nel.org,
ncardwell@...gle.com,
koen.de_schepper@...ia-bell-labs.com,
g.white@...lelabs.com,
ingemar.s.johansson@...csson.com,
mirja.kuehlewind@...csson.com,
cheshire@...le.com,
rs.ietf@....at,
Jason_Livingood@...cast.com,
vidhi_goel@...le.com
Cc: Chia-Yu Chang <chia-yu.chang@...ia-bell-labs.com>
Subject: [PATCH v7 net-next 1/3] Documentation: netlink: specs: tc: Add DualPI2 specification
From: Chia-Yu Chang <chia-yu.chang@...ia-bell-labs.com>
Describe 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) to provide two queues
called low latency and classic.
Signed-off-by: Chia-Yu Chang <chia-yu.chang@...ia-bell-labs.com>
---
Documentation/netlink/specs/tc.yaml | 140 ++++++++++++++++++++++++++++
1 file changed, 140 insertions(+)
diff --git a/Documentation/netlink/specs/tc.yaml b/Documentation/netlink/specs/tc.yaml
index aacccea5dfe4..43678c3bad4a 100644
--- a/Documentation/netlink/specs/tc.yaml
+++ b/Documentation/netlink/specs/tc.yaml
@@ -816,6 +816,58 @@ definitions:
-
name: drop-overmemory
type: u32
+ -
+ name: tc-dualpi2-xstats
+ type: struct
+ members:
+ -
+ name: prob
+ type: u32
+ doc: Current 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
@@ -2299,6 +2351,88 @@ attribute-sets:
-
name: quantum
type: u32
+ -
+ name: tc-dualpi2-attrs
+ attributes:
+ -
+ name: limit
+ type: u32
+ doc: Limit of total number of packets in queue
+ -
+ name: memlimit
+ 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
+ type: u32
+ doc: L4S step marking threshold in microseconds or in packet (see step_packets)
+ -
+ name: step_packets
+ type: flags
+ doc: L4S Step marking threshold unit
+ entries:
+ - microseconds
+ - packets
+ -
+ name: coupling_factor
+ type: u8
+ doc: Probability coupling factor between Classic and L4S (2 is recommended)
+ -
+ name: drop_overload
+ type: flags
+ doc: Control the overload strategy (drop to preserve latency or let the queue overflow)
+ entries:
+ - drop_on_overload
+ - overflow
+ -
+ name: drop_early
+ type: flags
+ doc: Decide where the Classic packets are PI-based dropped or marked
+ entries:
+ - drop_enqueue
+ - drop_dequeue
+ -
+ name: classic_protection
+ type: u8
+ doc: Classic WRR weight in percentage (from 0 to 100)
+ -
+ name: ecn_mask
+ type: flags
+ doc: Configure the L-queue ECN classifier
+ entries:
+ - l4s_ect
+ - any_ect
+ -
+ name: gso_split
+ type: flags
+ doc: Split aggregated skb or not
+ entries:
+ - split_gso
+ - no_split_gso
+ -
+ name: max_rtt
+ type: u32
+ doc: The maximum expected RTT of the traffic that is controlled by DualPI2 in usec
+ -
+ name: typical_rtt
+ type: u32
+ doc: The typical base RTT of the traffic that is controlled by DualPI2 in usec
-
name: tc-ematch-attrs
attributes:
@@ -3679,6 +3813,9 @@ sub-messages:
-
value: drr
attribute-set: tc-drr-attrs
+ -
+ value: dualpi2
+ attribute-set: tc-dualpi2-attrs
-
value: etf
attribute-set: tc-etf-attrs
@@ -3846,6 +3983,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
--
2.34.1
Powered by blists - more mailing lists