Does anyone know how to get bandwidth shaping working properly?
I've been using rshaper, which works, but it seems a bit wasteful to be throwing away good bandwidth when not everyone is online, so I was looking for something a bit better.
This, I'm afraid to say fails miserably.
Code:#!/bin/bash #generate root class tc qdisc add dev eth0 root handle 10: cbq bandwidth 10Mbit avpkt 1000 #generate root cable modem class tc class add dev eth0 parent 10:0 classid 10:1 cbq bandwidth 10Mbit rate \ *512kbit allot 1514 weight 50kbit prio 8 maxburst 20 avpkt 1000 bounded #generate individual pc classes tc class add dev eth0 parent 10:1 classid 10:100 cbq bandwidth 512kbit rate \ *128kbit allot 1514 weight 13Kbit prio 5 maxburst 20 avpkt 1000 tc class add dev eth0 parent 10:1 classid 10:200 cbq bandwidth 512kbit rate \ *128kbit allot 1514 weight 13Kbit prio 5 maxburst 20 avpkt 1000 tc class add dev eth0 parent 10:1 classid 10:300 cbq bandwidth 512kbit rate \ *128kbit allot 1514 weight 13Kbit prio 5 maxburst 20 avpkt 1000 tc class add dev eth0 parent 10:1 classid 10:400 cbq bandwidth 512kbit rate \ *128kbit allot 1514 weight 13Kbit prio 5 maxburst 20 avpkt 1000 # Tell the kernel how to maage the queues, in this case sfq tc qdisc add dev eth0 parent 10:100 sfq quantum 1514b perturb 15 tc qdisc add dev eth0 parent 10:200 sfq quantum 1514b perturb 15 tc qdisc add dev eth0 parent 10:300 sfq quantum 1514b perturb 15 tc qdisc add dev eth0 parent 10:400 sfq quantum 1514b perturb 15 # Explain to the kernel which packets belong to which class tc filter add dev eth0 parent 10:0 protocol ip prio 100 u32 match ip dst \ *192.168.0.65 flowid 10:100 tc filter add dev eth0 parent 10:0 protocol ip prio 100 u32 match ip dst \ *192.168.0.66 flowid 10:200 tc filter add dev eth0 parent 10:0 protocol ip prio 100 u32 match ip dst \ *192.168.0.67 flowid 10:300 tc filter add dev eth0 parent 10:0 protocol ip prio 100 u32 match ip dst \ *192.168.0.69 flowid 10:400
Bookmarks