Linux Filters and Queuing Discipline

TC is used to configure traffic control in Linux kernel. Traffic control consists of the following:

  • Shaping: Shaping is done at the outgoing interface, and includes throttling the bandwidth and/or smoothing the traffic bursts of the outgoing flows.
  • Scheduling: Scheduling is also done at the outgoing interface and makes it possible to improve interactivity for traffic that needs it while still guaranteeing bandwidth to bulk transfers.
  • Policing: Policing is done at the ingress and is primarily used for throttling the rate at which flows may arrive.

    Read more

How to implement filter on Linux machine using TC scripts for MPLS?

The filter implemented in the RSVP-TE daemon for DiffServ over MPLS package was implemented using the CBQ qdisc, which is known to be complicated and inefficient [26]. This filter was rewritten using the HTB qdisc for the given network topology and can be viewed on a logical level as follows [19,25]:

Fig. 8.4 TC Filter

Read more

How to compile linux to create a DiffServ over MPLS router in lab?

Appendix A

( Modified from [19], for HTB support for linux kernels 2.4.19 and lesser)

1. Preparation:

1.1 Installation of the Linux kernel

The default Linux kernel location is folder /usr/src/linux-2.4.18

(Specifically use kernel 2.4.18. Kernels 2.4.19, 2.4.20, 2.4.21 were tried and were found to give “kernel panic” on boot.)

– A copy of compressed kernel (linux-2.4.18.tar.bz2) has to be copied

to folder /usr/src/. This is the default kernel location, and the

intended start point for all further operations.

– This directory may contain a symbolic link linux to the old kernel

folder. If so this has to be removed.

Read more

Some TC scripts and other appendices

Appendix D

TC script for filter 1


# This script will set-up an example DS tree

#only set ENABLE_MPLS_IP to true if you installed the DSMPLS+IP patch



IFACES=”eth1 eth2 eth3″


if test $# -gt 0


case $1 in

Read more