TC(8)                               Linux                              TC(8)

NAME         top

       choke - choose and keep scheduler

SYNOPSIS         top

       tc qdisc ... choke limit packets min packets max packets avpkt bytes
       burst packets [ ecn ] [ bandwidth rate ] probability chance

DESCRIPTION         top

       CHOKe (CHOose and Keep for responsive flows, CHOose and Kill for
       unresponsive flows) is a classless qdisc designed to both identify
       and penalize flows that monopolize the queue. CHOKe is a variation of
       RED, and the configuration is similar to RED.

ALGORITHM         top

       Once the queue hits a certain average length, a random packet is
       drawn from the queue. If both the to-be-queued and the drawn packet
       belong to the same flow, both packets are dropped. Otherwise, if the
       queue length is still below the maximum length, the new packet has a
       configurable chance of being marked (which may mean dropped).  If the
       queue length exceeds max, the new packet will always be marked (or
       dropped).  If the queue length exceeds limit, the new packet is
       always dropped.

       The marking probability computation is the same as used by the RED

PARAMETERS         top

       The parameters are the same as for RED, except that RED uses bytes
       whereas choke counts packets. See tc-red(8) for a description.

SOURCE         top

       o      R. Pan, B. Prabhakar, and K. Psounis, "CHOKe, A Stateless
              Active Queue Management Scheme for Approximating Fair
              Bandwidth Allocation", IEEE INFOCOM, 2000.

       o      A. Tang, J. Wang, S. Low, "Understanding CHOKe: Throughput and
              Spatial Characteristics", IEEE/ACM Transactions on Networking,

SEE ALSO         top

       tc(8), tc-red(8)

AUTHOR         top

       sched_choke was contributed by Stephen Hemminger.

COLOPHON         top

       This page is part of the iproute2 (utilities for controlling TCP/IP
       networking and traffic) project.  Information about the project can
       be found at 
       If you have a bug report for this manual page, send it to,  This page was obtained
       from the project's upstream Git repository 
       on 2017-03-13.  If you discover any rendering problems in this HTML
       version of the page, or you believe there is a better or more up-to-
       date source for the page, or you have corrections or improvements to
       the information in this COLOPHON (which is not part of the original
       manual page), send a mail to

iproute2                         August 2011                           TC(8)