{
    "content": [
        {
            "type": "text",
            "text": "# tc-pfifo(8) (man)\n\n**Summary:** pfifo - Packet limited First In, First Out queue  bfifo - Byte limited First In, First Out queue\n\n**Synopsis:** tc qdisc ... add pfifo [ limit packets ]\ntc qdisc ... add bfifo [ limit bytes ]\n\n## See Also\n\n- tc(8)\n\n## Section Outline\n\n- **NAME** (5 lines)\n- **SYNOPSIS** (5 lines)\n- **DESCRIPTION** (8 lines)\n- **ALGORITHM** (7 lines)\n- **PARAMETERS** (10 lines)\n- **OUTPUT** (14 lines)\n- **SEE ALSO** (3 lines)\n- **AUTHORS** (7 lines)\n\n## Full Content\n\n### NAME\n\npfifo - Packet limited First In, First Out queue\n\nbfifo - Byte limited First In, First Out queue\n\n### SYNOPSIS\n\ntc qdisc ... add pfifo [ limit packets ]\n\ntc qdisc ... add bfifo [ limit bytes ]\n\n### DESCRIPTION\n\nThe  pfifo  and  bfifo qdiscs are unadorned First In, First Out queues. They are the simplest\nqueues possible and therefore have no overhead.  pfifo constrains the queue size as  measured\nin packets.  bfifo does so as measured in bytes.\n\nLike all non-default qdiscs, they maintain statistics. This might be a reason to prefer pfifo\nor bfifo over the default.\n\n### ALGORITHM\n\nA list of packets is maintained, when a packet is enqueued it gets inserted at the tail of  a\nlist.  When  a  packet  needs to be sent out to the network, it is taken from the head of the\nlist.\n\nIf the list is too long, no further packets are allowed on. This is called 'tail drop'.\n\n### PARAMETERS\n\nlimit  Maximum queue size. Specified in bytes for bfifo, in packets for pfifo. For pfifo, de‐\nfaults to the interface txqueuelen, as specified with ifconfig(8) or ip(8).  The range\nfor this parameter is [0, UINT32MAX].\n\nFor bfifo, it defaults to the txqueuelen multiplied by the interface MTU.   The  range\nfor this parameter is [0, UINT32MAX] bytes.\n\nNote: The link layer header was considered when counting packets length.\n\n### OUTPUT\n\nThe  output of tc -s qdisc ls contains the limit, either in packets or in bytes, and the num‐\nber of bytes and packets actually sent. An unsent and dropped  packet  only  appears  between\nbraces and is not counted as 'Sent'.\n\nIn this example, the queue length is 100 packets, 45894 bytes were sent over 681 packets.  No\npackets were dropped, and as the pfifo queue does not slow down packets, there were  also  no\noverlimits:\n\n# tc -s qdisc ls dev eth0\nqdisc pfifo 8001: dev eth0 limit 100p\nSent 45894 bytes 681 pkts (dropped 0, overlimits 0)\n\nIf a backlog occurs, this is displayed as well.\n\n### SEE ALSO\n\ntc(8)\n\n### AUTHORS\n\nAlexey N. Kuznetsov, <kuznet@ms2.inr.ac.ru>\n\nThis manpage maintained by bert hubert <ahu@ds9a.nl>\n\n\n\niproute2                                   10 January 2002                                 PBFIFO(8)\n\n"
        }
    ],
    "structuredContent": {
        "command": "tc-pfifo",
        "section": "8",
        "mode": "man",
        "summary": "pfifo - Packet limited First In, First Out queue  bfifo - Byte limited First In, First Out queue",
        "synopsis": "tc qdisc ... add pfifo [ limit packets ]\ntc qdisc ... add bfifo [ limit bytes ]",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [
            {
                "name": "tc",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/tc/8/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 8,
                "subsections": []
            },
            {
                "name": "ALGORITHM",
                "lines": 7,
                "subsections": []
            },
            {
                "name": "PARAMETERS",
                "lines": 10,
                "subsections": []
            },
            {
                "name": "OUTPUT",
                "lines": 14,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "AUTHORS",
                "lines": 7,
                "subsections": []
            }
        ]
    }
}