The following example illustrates most of the elements found in a typical tcng configuration:
#include "fields.tc" #include "ports.tc" dev "eth0" { egress { // classification class (<$high>) if tcp_dport == PORT_HTTP; class (<$low>) if 1; // queuing prio { $high = class (1) { fifo (limit 20kB); } $low = class (2) { fifo (limit 100kB); } } } }
The first two lines include files with definitions for header fields
and port numbers. For details, see section .
The dev" and \verb"egress
lines determine what is being configured,
i.e. the egress (outbound) side of the network interface ``eth0''.
The configuration consists of two parts: the classification and the setup of the queuing system. In this example, we use a priority scheduler with two classes for the priorities ``high'' and ``low''.
Packets with TCP destination port 80 (HTTP) are sent to the high
priority class, while all other packets (if 1;
) are sent to the
low priority class. Note that it is generally a good idea to finish a
classifier with a selection rule that is always true.
The queuing part defines the queuing discipline for static priorities, with the two classes. Inside the high-priority class, there is another queuing discipline - a simple FIFO with a capacity of 20 kilobytes. Likewise, the low-priority class contains a FIFO with 100 kB.