]> git.proxmox.com Git - mirror_iproute2.git/commit
tc: add support for FQ-PIE packet scheduler
authorMohit P. Tahiliani <tahiliani@nitk.edu.in>
Tue, 4 Feb 2020 10:49:19 +0000 (16:19 +0530)
committerStephen Hemminger <stephen@networkplumber.org>
Tue, 4 Feb 2020 11:24:39 +0000 (03:24 -0800)
commit9dced637f8dd269e0a409eb2eec1404d54d517f4
treeb268725ac5aedf72a7013649ee95a6ba62717a21
parent39995691b51c448b4d58845efc32b65dafcc48d7
tc: add support for FQ-PIE packet scheduler

This patch adds support for the FQ-PIE packet Scheduler

Principles:
  - Packets are classified on flows.
  - This is a Stochastic model (as we use a hash, several flows might
                                be hashed to the same slot)
  - Each flow has a PIE managed queue.
  - Flows are linked onto two (Round Robin) lists,
    so that new flows have priority on old ones.
  - For a given flow, packets are not reordered.
  - Drops during enqueue only.
  - ECN capability is off by default.
  - ECN threshold (if ECN is enabled) is at 10% by default.
  - Uses timestamps to calculate queue delay by default.

Usage:
tc qdisc ... fq_pie [ limit PACKETS ] [ flows NUMBER ]
                    [ target TIME ] [ tupdate TIME ]
                    [ alpha NUMBER ] [ beta NUMBER ]
                    [ quantum BYTES ] [ memory_limit BYTES ]
                    [ ecn_prob PERCENTAGE ] [ [no]ecn ]
                    [ [no]bytemode ] [ [no_]dq_rate_estimator ]

defaults:
  limit: 10240 packets, flows: 1024
  target: 15 ms, tupdate: 15 ms (in jiffies)
  alpha: 1/8, beta : 5/4
  quantum: device MTU, memory_limit: 32 Mb
  ecnprob: 10%, ecn: off
  bytemode: off, dq_rate_estimator: off

Signed-off-by: Mohit P. Tahiliani <tahiliani@nitk.edu.in>
Signed-off-by: Sachin D. Patil <sdp.sachin@gmail.com>
Signed-off-by: V. Saicharan <vsaicharan1998@gmail.com>
Signed-off-by: Mohit Bhasi <mohitbhasi1998@gmail.com>
Signed-off-by: Leslie Monis <lesliemonis@gmail.com>
Signed-off-by: Gautam Ramakrishnan <gautamramk@gmail.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
bash-completion/tc
man/man8/tc-fq_pie.8 [new file with mode: 0644]
man/man8/tc.8
tc/Makefile
tc/q_fq_pie.c [new file with mode: 0644]