A qdisc (“queueing discipline”) is a traffic controller / scheduler that determines how packets are queued to transmitted. The default qdisc is fq_codel.

There are two types of qdiscs (see Arch Wiki):

  • A classful qdisc (e.g. cbq) is a qdisc with classes defined by filters, allowing different types of packets to be queued and transmitted differently. You can then attach a qdisc to each class to configure how packets in each class are queued.
  • A classless qdisc just doesn’t support classes.

A network interface have both the ingress (filter incoming traffic) and the root (queue outgoing traffic) qdisc. If the root qdisc happens to be classful, it can have a child qdisc under each class.