Match-all classifier in tc(8) Linux Match-all classifier in tc(8)

matchall - traffic control filter that matches every packet


tc filter ... matchall [ skip_sw | skip_hw ] [ action ACTION_SPEC ] [ classid CLASSID ]

The matchall filter allows one to classify every packet that flows on the port and run a action on it.

Apply an action from the generic actions framework on matching packets.
Push matching packets into the class identified by CLASSID.
Do not process filter by software. If hardware has no offload support for this filter, or TC offload is not enabled for the interface, operation will fail.
Do not process filter by hardware.

To create ingress mirroring from port eth1 to port eth2:

tc qdisc  add dev eth1 handle ffff: clsact
tc filter add dev eth1 ingress                \
        matchall skip_sw                      \
        action mirred egress mirror           \
        dev eth2

The first command creates a clsact qdisc with handle ffff: on device eth1 where the second command attaches a matchall filters on it that mirrors the packets to device eth2 for ingress.

To create egress mirroring from port eth1 to port eth2:

tc qdisc add dev eth1 handle ffff: clsact
tc filter add dev eth1 egress                  \
        matchall skip_sw                       \
        action mirred egress mirror            \
        dev eth2

The first command creates a clsact qdisc with handle ffff: on device eth1 where the second command attaches a matchall filters on it that mirrors the packets to device eth2 for egress.

To sample one of every 100 packets flowing into interface eth0 to psample group 12:

tc qdisc add dev eth0 handle ffff: ingress
tc filter add dev eth0 parent ffff: matchall \
     action sample rate 100 group 12

tc(8),

21 Oct 2015 iproute2