DUALPI2(8) Linux DUALPI2(8) (NAME) tc-dualpi2 - - (DUALPI2 AQM) (SYNOPSIS) tc qdisc ... dualpi2 [ limit PACKETS ] [ memlimit BYTES ] [ coupling_factor NUMBER ] [ step_thresh TIME|PACKETS ] [ min_qlen_step PACKETS ] [ drop_on_overload | overflow ] [ drop_enqueue | drop_dequeue ] [ l4s_ect | any_ect ] [ classic_protection PERCENTAGE ] [ max_rtt TIME [ typical_rtt TIME ]] [ target TIME ] [ tupdate TIME ] [ alpha float ] [ beta float ] [ split_gso | no_split_gso ] (DESCRIPTION) DUALPI2 AQM DUALQ Coupled-AQM AQM PI2 . PI2 AQM ( ) PIE AQM . PI2 (heuristics) PIE TCP-Prague . PI2 Reno/Cubic Prague (window fairness) . DUALQ Prague Reno/Cubic . : o L4S ( - Low Loss, Low Latency and Scalable congestion control) o DualQ L4S (L- queue) (C-queue) (congestion-coupling) o (overload) o (sojourn time) o o PI2 ( alpha beta tupdate) DualPI2 . . DualPI2 (RTT) RTT . ( ) max_rtt typical_rtt ( target) . PI2 ( alpha beta tupdate) . (ALGORITHM) DUALPI2 L4S . . () (target) tupdate . alpha beta ( ) . (marking) (drop) . DUALPI2 . L(L-queue) coupling_factor C(C-queue) Reno/Cubic . ECT (l4s_ect | any_ect) . DUALPI2 AQM ( ) drop ECN overflow ( taildrop). RFC . (PARAMETERS) limit PACKETS . (drop) . L-queue C-queue . 10000 . 1Gbps . memlimit BYTES . . L-queue C-queue . 10000 * MTU . coupling_factor NUMBER Classic L4S . 2 . l4s_ect|any_ect ECT . ECT L-queue . l4s_ect L4S ECT(1). any_ect ECN L-queue . DCTCP . DCTCP (intra-DC) RTT AQM RTT ( Prague) DCTCP Prague RTT . step_thresh TIME | PACKETS (step threshold) L-queue . (sojourn time) . ( us ms s) (p pkt packet(s)) . ( us) . GRO . 1ms . min_qlen_step PACKETS L-queue L-queue . 0 . L-queue . drop_on_overload | overflow (overload) . drop_on_overload L-queue . overflow limit (taildrop) . drop_on_overload . drop_enqueue | drop_dequeue PI . L4S step_thresh (dequeue) . drop_dequeue . classic_protection PERCENTAGE C-queue L-queue . C-queue (100 - PERCENTAGE) L-queue . 10 . typical_rtt TIME max_rtt TIME (RTT) / RTT DUALPI2 . ( us ms s) . (us) . max_rtt typical_rtt : max_rtt = typical_rtt * 6. alpha beta target tupdate A.1 RFC IETF . . qdisc max_rtt = 100ms typical_rtt = 15ms . target TIME . 15 (ms) . (us) . tupdate TIME . 16 (ms) . . RTT . alpha float beta float (alpha beta) (Hz) PI . . 0.16 3.2 RTT tupdate . PIE . typical_rtt max_rtt . split_gso | no_split_gso (aggregated) . ( ) no_split_gso (tail latency) (CPU) ( ) split_gso / . split_gso . (EXAMPLES) DUALPI2 : # sudo tc qdisc add dev eth0 root dualpi2 DUALPI2 DCTCP ECT(0): # sudo tc qdisc add dev eth0 root dualpi2 any_ect (FILTERS) qdisc tc-filter . ("stealing packets") . priority/classid 1 L4S L-queue ( not-ECT) . priority/classid 2 L-queue not-ECT ( qdisc taildrop ). (classid/priority) C-queue . (SEE ALSO) tc(8), tc-pie(8) (SOURCES) o IETF RFC9332 : o CoNEXT '16 : "PI2: A Linearized AQM for both Classic and Scalable TCP" (AUTHORS) DUALPI2 Koen De Schepper Olga Albisser Henrik Steen Olivier Tilmans Chia-Yu Chang . . iproute2 29 Oct 2024 DUALPI2(8)