> -----Original Message----- > From: Paolo Abeni <pab...@redhat.com> > Sent: Tuesday, April 22, 2025 11:54 AM > To: Chia-Yu Chang (Nokia) <chia-yu.ch...@nokia-bell-labs.com>; > xandf...@gmail.com; net...@vger.kernel.org; dave.t...@gmail.com; > j...@mojatatu.com; k...@kernel.org; step...@networkplumber.org; > xiyou.wangc...@gmail.com; j...@resnulli.us; da...@davemloft.net; > eduma...@google.com; ho...@kernel.org; andrew+net...@lunn.ch; > donald.hun...@gmail.com; a...@fiberby.net; liuhang...@gmail.com; > sh...@kernel.org; linux-kselftest@vger.kernel.org; i...@kernel.org; > ncardw...@google.com; Koen De Schepper (Nokia) > <koen.de_schep...@nokia-bell-labs.com>; g.white <g.wh...@cablelabs.com>; > ingemar.s.johans...@ericsson.com; mirja.kuehlew...@ericsson.com; > chesh...@apple.com; rs.i...@gmx.at; jason_living...@comcast.com; vidhi_goel > <vidhi_g...@apple.com> > Subject: Re: [PATCH v11 net-next 1/5] Documentation: netlink: specs: tc: Add > DualPI2 specification > > > CAUTION: This is an external email. Please be very careful when clicking > links or opening attachments. See the URL nok.it/ext for additional > information. > > > > On 4/15/25 2:43 PM, chia-yu.ch...@nokia-bell-labs.com wrote: > > From: Chia-Yu Chang <chia-yu.ch...@nokia-bell-labs.com> > > > > 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.ch...@nokia-bell-labs.com> > > --- > > Documentation/netlink/specs/tc.yaml | 144 > > ++++++++++++++++++++++++++++ > > 1 file changed, 144 insertions(+) > > > > diff --git a/Documentation/netlink/specs/tc.yaml > > b/Documentation/netlink/specs/tc.yaml > > index aacccea5dfe4..0fb971935285 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 > > Here and in other numeric fields you should probably want to use 'uint' > type, that will allow either 32 or 64 bits integers depending on the actual > value and will make possible overflows harder.
Hi Paolo, OK, I will replace all u32 and u8 into uint, and s32 into int. > > > + 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,92 @@ 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: min_qlen_step > > + type: u32 > > + doc: Pacekts 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) > > Typo above, should likely be 'Packets' > > /P Thanks, this will be fixed in the next version. BRs, Chia-Yu