The Linux Traffic Control (TC) is an important networking subsystem with control residing in user space and the datapath in the kernel. It has various fundamental pluggable components: Packet schedulers abstracted in the form of qdiscs, classifiers holding filters that point to queues in the form of classes and many actions that partake with specified filters in a directed graph.
Although TC has been around since the early 2.1 kernels, it continues to add exciting features to this day thanks to its pluggable framework.
In this tutorial we will start by providing an overview of the architecture and framework. We will discuss ongoing efforts and future plans. We will then proceed to discuss basic administration control of the different components with practical examples. Finally for developers, we plan to discuss implementation details of the different pieces and if time permits we will walk over code of sample components.