A filter
is used by a classful qdisc to determine in which class
a packet will be enqueued. Whenever traffic arrives at a class
with subclasses, it needs to be classified. Various methods may
be employed to do so, one of these are the filters. All filters
attached to the class are called, until one of them returns with
a verdict. If no verdict was made, other criteria may be
available. This differs per qdisc.
It is important to notice that filters reside within
qdiscs -
they are not masters of what happens.
The available filters are:
basic Filter packets based on an ematch expression. See
tc-ematch(8) for details.
bpf Filter packets using (e)BPF, see tc-bpf(8) for details.
cgroup Filter packets based on the control group of their
process. See tc-cgroup(8) for details.
flow, flower
Flow-based classifiers, filtering packets based on their
flow (identified by selectable keys). See tc-flow(8) and
tc-flower(8) for details.
fw Filter based on fwmark. Directly maps fwmark value to
traffic class. See tc-fw(8).
route Filter packets based on routing table. See tc-route(8) for
details.
rsvp Match Resource Reservation Protocol (RSVP) packets.
tcindex
Filter packets based on traffic control index. See
tc-tcindex(8).
u32 Generic filtering on arbitrary packet data, assisted by
syntax to abstract common operations. See tc-u32(8) for
details.
matchall
Traffic control filter that matches every packet. See
tc-matchall(8) for details.