N.B. this is just me dabbling in QoS again, and everything here is completely un-usable
Downloadable at https://github.com/jimdigriz/jdg-qos
Available bandwidth is variable on todays xDSL connections due to contention, so my new generation of QoS script tries to be work conserving throughout and relying on queue lengths to decide what to dequeue/drop.
The TBF at the head is to just slightly clip short of any buffers between (and inside) the modem to the DSLAM at the local exchange.
ppp0 [root] (egress) -> ...
ingress [ffff:] -> basic action mirred egress redirect dev ifb0 -> ifb0 [root] (ingress) -> ...
tbf [1:] -> prio [10:] --{10:1}--> tbf [100:] (EF)
--{10:2}--> ddr [200:] (AF) --> 12 red queues
--{10:3}--> red [300:] (BE)
N.B. prio is built using 'bands 3 priomap 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1'