BEGIN CONDITIONAL
tcsim
dev eth0
tc qdisc add dev eth0 root handle 1:0 tbf limit 20kB rate 1Mbit burst 3kB
tc qdisc add dev eth0 parent 1:0 pfifo
EOF
# TBF without inner qdisc (tc) ------------------------------------------------
tcc | sed 's/ add dev eth0//'
tbf (mtu 1.5kB,limit 10kB,rate 1kBps,burst 2kB);
EOF
tc qdisc handle 1:0 root tbf burst 2048 limit 10240 mtu 1536 rate 1000bps
# TBF with empty inner block (tc) ---------------------------------------------
tcc | sed 's/ add dev eth0//'
tbf (mtu 1.5kB,limit 10kB,rate 1kBps,burst 2kB) {
}
EOF
tc qdisc handle 1:0 root tbf burst 2048 limit 10240 mtu 1536 rate 1000bps
# TBF with inner fifo (tc) ----------------------------------------------------
tcsim -v | sed 's/^.* : //;s/ add dev eth0//'
dev eth0 {
    tbf (mtu 1.5kB,limit 10kB,rate 1kBps,burst 2kB) {
	fifo;
    }
}
EOF
qdisc handle 1:0 root tbf burst 2048 limit 10240 mtu 1536 rate 1000bps
qdisc handle 2:0 parent 1:0 pfifo
# TBF with inner prio (tc) ----------------------------------------------------
tcsim -v | sed 's/^.* : //;s/ add dev eth0//'
dev eth0 {
    tbf (mtu 1.5kB,limit 10kB,rate 1kBps,burst 2kB) {
	prio {
	    class (1) if raw[0] == 1;
	    class (2) if raw[0] == 2;
	    class (3) if 1;
	}
    }
}
EOF
qdisc handle 1:0 root tbf burst 2048 limit 10240 mtu 1536 rate 1000bps
qdisc handle 2:0 parent 1:0 prio
filter parent 2:0 protocol all prio 1 u32 match u8 0x1 0xff at 0 classid 2:1
filter parent 2:0 protocol all prio 1 u32 match u8 0x2 0xff at 0 classid 2:2
filter parent 2:0 protocol all prio 1 u32 match u32 0x0 0x0 at 0 classid 2:3
END CONDITIONAL
