#! /bin/sh case "$1" in start) echo -n "Shaper Start... " echo tc qdisc add dev eth1 root handle 1:0 cbq bandwidth 100Mbit avpkt 1000 tc qdisc add dev eth2 root handle 2:0 cbq bandwidth 100Mbit avpkt 1000 # 10.4.4.0 tc class add dev eth1 parent 1:0 classid 1:1 cbq bandwidth 100Mbit rate 7168Kbit weight 384Kbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded tc qdisc add dev eth1 parent 1:1 tbf rate 7168Kbit buffer 10Kb/8 limit 15Kb mtu 1500 tc filter add dev eth1 parent 1:0 protocol ip prio 100 u32 match ip dst 10.4.4.0/24 classid 1:100 # 192.168.130.0 tc class add dev eth2 parent 2:0 classid 2:1 cbq bandwidth 100Mbit rate 3088Kbit weight 384Kbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded tc qdisc add dev eth2 parent 2:1 tbf rate 3088Kbit buffer 10Kb/8 limit 15Kb mtu 1500 tc filter add dev eth2 parent 2:0 protocol ip prio 100 u32 match ip dst 192.168.130.0/24 classid 1:100 echo "" ;; stop) echo -n "Shaper Stop.... " tc -s qdisc del dev eth1 root tc -s qdisc del dev eth2 root echo "" ;; status) echo -n "Shaper Status.... " tc -s qdisc show dev eth1 tc -s qdisc show dev eth2 echo "" ;; restart) echo -n "Shaper Restarting .... " /root/shaper/shaper stop /root/shaper/shaper start echo "" ;; *) echo "Usage: $0 {start|stop|status|restart}" echo "" exit 1 ;; esac