{
    "mode": "man",
    "parameter": "tc-fq_codel",
    "section": "8",
    "url": "https://www.chedong.com/phpMan.php/man/tc-fq_codel/8/json",
    "generated": "2026-06-13T23:47:27Z",
    "synopsis": "tc  qdisc ... fqcodel [ limit PACKETS ] [ flows NUMBER ] [ target TIME ] [ interval TIME ] [\nquantum BYTES ] [ ecn | noecn ] [ cethreshold TIME ] [ memorylimit BYTES ]",
    "sections": {
        "NAME": {
            "content": "CoDel - Fair Queuing (FQ) with Controlled Delay (CoDel)\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "tc  qdisc ... fqcodel [ limit PACKETS ] [ flows NUMBER ] [ target TIME ] [ interval TIME ] [\nquantum BYTES ] [ ecn | noecn ] [ cethreshold TIME ] [ memorylimit BYTES ]\n\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "FQCodel (Fair Queuing Controlled Delay) is queuing discipline  that  combines  Fair  Queuing\nwith the CoDel AQM scheme. FQCodel uses a stochastic model to classify incoming packets into\ndifferent flows and is used to provide a fair share of the bandwidth to all the  flows  using\nthe  queue.  Each  such  flow is managed by the CoDel queuing discipline. Reordering within a\nflow is avoided since Codel internally uses a FIFO queue.\n\n",
            "subsections": []
        },
        "PARAMETERS": {
            "content": "",
            "subsections": [
                {
                    "name": "limit",
                    "content": "has the same semantics as codel and is the hard limit on the  real  queue  size.   When  this\nlimit is reached, incoming packets are dropped. Default is 10240 packets.\n\n\nmemorylimit\nsets  a  limit on the total number of bytes that can be queued in this FQ-CoDel instance. The\nlower of the packet limit of the limit parameter and the memory limit will be  enforced.  De‐\nfault is 32 MB.\n\n\n"
                },
                {
                    "name": "flows",
                    "content": "is  the number of flows into which the incoming packets are classified. Due to the stochastic\nnature of hashing, multiple flows may end up being hashed into the  same  slot.  Newer  flows\nhave  priority  over older ones. This parameter can be set only at load time since memory has\nto be allocated for the hash table.  Default value is 1024.\n\n"
                },
                {
                    "name": "target",
                    "content": "has the same semantics as codel and is the acceptable minimum standing/persistent  queue  de‐\nlay.  This minimum delay is identified by tracking the local minimum queue delay that packets\nexperience. Default value is 5ms.\n\n"
                },
                {
                    "name": "interval",
                    "content": "has the same semantics as codel and is used to ensure that the measured  minimum  delay  does\nnot  become  too stale.  The minimum delay must be experienced in the last epoch of length .B\ninterval.  It should be set on the order of the worst-case RTT through the bottleneck to give\nendpoints sufficient time to react. Default value is 100ms.\n\n"
                },
                {
                    "name": "quantum",
                    "content": "is  the  number  of  bytes used as 'deficit' in the fair queuing algorithm. Default is set to\n1514 bytes which corresponds to the Ethernet MTU plus the hardware header length of 14 bytes.\n\n"
                },
                {
                    "name": "ecn | noecn",
                    "content": "has the same semantics as codel and can be used to mark packets instead of dropping them.  If\necn has been enabled, noecn can be used to turn it off and vice-a-versa. Unlike codel, ecn is\nturned on by default.\n\n\ncethreshold\nsets a threshold above which all packets are marked with ECN Congestion Experienced. This  is\nuseful  for  DCTCP-style  congestion  control algorithms that require marking at very shallow\nqueueing thresholds.\n\n"
                }
            ]
        },
        "EXAMPLES": {
            "content": "#tc qdisc add   dev eth0 root fqcodel\n#tc -s qdisc show\nqdisc fqcodel 8002: dev eth0 root refcnt 2 limit 10240p flows 1024 quantum 1514\ntarget 5.0ms interval 100.0ms ecn\nSent 428514 bytes 2269 pkt (dropped 0, overlimits 0 requeues 0)\nbacklog 0b 0p requeues 0\nmaxpacket 256 dropoverlimit 0 newflowcount 0 ecnmark 0\nnewflowslen 0 oldflowslen 0\n\n#tc qdisc add dev eth0 root fqcodel limit 2000 target 3ms interval 40ms noecn\n#tc -s qdisc show\nqdisc fqcodel 8003: dev eth0 root refcnt 2 limit 2000p flows 1024 quantum 1514 target  3.0ms\ninterval 40.0ms\nSent 2588985006 bytes 1783629 pkt (dropped 0, overlimits 0 requeues 34869)\nbacklog 0b 0p requeues 34869\nmaxpacket 65226 dropoverlimit 0 newflowcount 73 ecnmark 0\nnewflowslen 1 oldflowslen 3\n\n\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "tc(8), tc-codel(8), tc-red(8)\n\n",
            "subsections": []
        },
        "AUTHORS": {
            "content": "FQCoDel  was  implemented  by  Eric  Dumazet. This manpage was written by Vijay Subramanian.\nPlease report corrections to the Linux Networking mailing list <netdev@vger.kernel.org>.\n\n\n\niproute2                                     4 June 2012                                 FQCoDel(8)",
            "subsections": []
        }
    },
    "summary": "CoDel - Fair Queuing (FQ) with Controlled Delay (CoDel)",
    "flags": [],
    "examples": [
        "#tc qdisc add   dev eth0 root fqcodel",
        "#tc -s qdisc show",
        "qdisc fqcodel 8002: dev eth0 root refcnt 2 limit 10240p flows 1024 quantum 1514",
        "target 5.0ms interval 100.0ms ecn",
        "Sent 428514 bytes 2269 pkt (dropped 0, overlimits 0 requeues 0)",
        "backlog 0b 0p requeues 0",
        "maxpacket 256 dropoverlimit 0 newflowcount 0 ecnmark 0",
        "newflowslen 0 oldflowslen 0",
        "#tc qdisc add dev eth0 root fqcodel limit 2000 target 3ms interval 40ms noecn",
        "#tc -s qdisc show",
        "qdisc fqcodel 8003: dev eth0 root refcnt 2 limit 2000p flows 1024 quantum 1514 target  3.0ms",
        "interval 40.0ms",
        "Sent 2588985006 bytes 1783629 pkt (dropped 0, overlimits 0 requeues 34869)",
        "backlog 0b 0p requeues 34869",
        "maxpacket 65226 dropoverlimit 0 newflowcount 73 ecnmark 0",
        "newflowslen 1 oldflowslen 3"
    ],
    "see_also": [
        {
            "name": "tc",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/tc/8/json"
        },
        {
            "name": "tc-codel",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/tc-codel/8/json"
        },
        {
            "name": "tc-red",
            "section": "8",
            "url": "https://www.chedong.com/phpMan.php/man/tc-red/8/json"
        }
    ]
}