Tc (Linux)

tc (traffic control) is a Linux command (part of the iproute2 package[1]) to configure and control the Linux kernel's Network scheduler to show and manipulate Network traffic control settings.[2]

Traffic shaping/scheduling serves several primary use cases:

Historically, the command required possession of the CAP_NET_ADMIN capability (usually root has this) however as part of the move towards better support for Operating System Level Virtualization this was migrated over to NS_CAPABLE.[3] This allows users who only administer particular namespaces to be able to set queuing disciplines within their namespace.

Queuing Discipline

Analogous to I/O scheduling which shapes traffic sent to and from mass storage devices, queuing disciplines shape traffic going in (ingress) or going out (egress) a network interface.

Available queuing disciplines:

References

  1. "list of the Debian package iproute2". Debian.
  2. tc(8)  Linux Administration and Privileged Commands Manual
  3. "[PATCH] net: Allow tc changes in user namespaces".
  4. Shreedhar, M. (June 1996). IEEE/ACM Transactions on Networking (TON) (IEEE) 4 (3): 375–385. Missing or empty |title= (help)

See Also