Se você quiser aplicar limitação a todo o tráfego de saída, não precisará de filtros. Basta adicionar seu qdisc ao identificador de raiz da interface da seguinte forma:
tc qdisc add dev eth0 root handle 1: tbf rate 256mbit latency 1ms burst 1540
Se você deseja moldar / policiar o tráfego de entrada, é um pouco mais complicado. Você precisará usar, por exemplo uma interface IFB:
modprobe ifb
ip link set dev ifb0 up
tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
# ^- this is a dummy filter, match u32 0 0 matches all traffic
tc qdisc add dev ifb0 root handle 1: tbf rate 256mbit latency 1ms burst 1540
Aqui está uma abordagem diferente, usando dois filtros simples:
tc qdisc add dev eth0 ingress
tc filter add dev eth0 root protocol ip u32 match u32 0 0 police rate 256mbit burst 10k drop flowid :1
tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 police rate 256mbit burst 10k drop flowid :1