charlie2alpha

tshape.sh qos script

Dec 24th, 2014
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.37 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. DEV=ppp0
  4. CEIL=880
  5.  
  6. #Rates
  7. HIGHEST=20
  8. HIGH=29
  9. MEDIUM=1
  10. LOW=40
  11. LOWEST=10
  12.  
  13. #Upper limit
  14. HIGHEST_LIM=90
  15. HIGH_LIM=70
  16. MEDIUM_LIM=1
  17. LOW_LIM=80
  18. LOWEST_LIM=50
  19.  
  20. tc qdisc del dev ${DEV} root
  21. tc qdisc del dev ${DEV} ingress
  22. tc qdisc add dev ${DEV} stab linklayer adsl overhead 40 mtu 1492 mpu 53 root handle 1: hfsc default 40
  23. # Upload 1:1
  24. tc class add dev ${DEV} parent 1: classid 1:1 hfsc sc rate ${CEIL}kbit ul rate ${CEIL}kbit
  25. # download 1:2
  26. tc class add dev ${DEV} parent 1: classid 1:2 htb rate 1000000kbit ceil 1000000kbit burst 10000 cburst 10000
  27. # 1:60 ALL Download for BCM
  28. tc class add dev ${DEV} parent 1:2 classid 1:60 htb rate 1000000kbit ceil 1000000kbit burst 10000 cburst 10000 prio 6
  29. tc qdisc add dev ${DEV} parent 1:60 handle 60: pfifo
  30. tc filter add dev ${DEV} parent 1: prio 6 protocol 802.1q handle 6 fw flowid 1:60
  31. # Upload HIGHEST
  32. tc class add dev ${DEV} parent 1:1 classid 1:10 hfsc sc umax 1492b dmax 20ms rate $(($HIGHEST*$CEIL/100))kbit ls rate $(($HIGHEST_LIM*$CEIL/100))kbit ul rate ${CEIL}kbit
  33. tc qdisc add dev ${DEV} parent 1:10 handle 10: sfq limit 127 perturb 10
  34. tc filter add dev ${DEV} protocol all parent 1: prio 10 handle 1 fw classid 1:10
  35. tc filter add dev ${DEV} protocol all prio 1 parent 10: handle 10 flow hash keys nfct-src divisor 1024
  36. echo " TC Class 1:110 defined."
  37. # Upload HIGH
  38. tc class add dev ${DEV} parent 1:1 classid 1:20 hfsc sc umax 1492b dmax 33ms rate $(($HIGH*$CEIL/100))kbit ls rate $(($HIGH_LIM*$CEIL/100))kbit ul rate ${CEIL}kbit
  39. # tc class add dev ${DEV} parent 1:1 classid 1:20 hfsc sc rate $(($HIGH*$CEIL/100))kbit ls rate $(($HIGH_LIM*$CEIL/100))kbit ul rate ${CEIL}kbit
  40. tc qdisc add dev ${DEV} parent 1:20 handle 20: sfq limit 127 perturb 10
  41. tc filter add dev ${DEV} protocol all parent 1: prio 20 handle 2 fw classid 1:20
  42. tc filter add dev ${DEV} protocol all prio 1 parent 20: handle 20 flow hash keys nfct-src divisor 1024
  43. # Ack packets
  44. tc filter add dev ppp0 parent 1:0 protocol ip prio 14 u32\
  45. match ip protocol 6 0xff\
  46. match u8 0x05 0x0f at 0\
  47. match u16 0x0000 0xffc0 at 2\
  48. match u8 0x10 0xff at 33 flowid 1:10
  49. # Syn packets
  50. tc filter add dev ppp0 parent 1:0 protocol ip prio 15 u32\
  51. match ip protocol 6 0xff\
  52. match u8 0x05 0x0f at 0\
  53. match u16 0x0000 0xffc0 at 2\
  54. match u8 0x02 0x02 at 33 flowid 1:10
  55. echo " TC Class 1:120 defined."
  56. # Upload MEDIUM
  57. tc class add dev ${DEV} parent 1:1 classid 1:30 hfsc sc rate $(($MEDIUM*$CEIL/100))kbit ls rate $(($MEDIUM_LIM*$CEIL/100))kbit ul rate ${CEIL}kbit
  58. tc qdisc add dev ${DEV} parent 1:30 handle 30: sfq limit 127 perturb 10
  59. tc filter add dev ${DEV} protocol all parent 1: prio 30 handle 3 fw classid 1:30
  60. tc filter add dev ${DEV} protocol all prio 1 parent 30: handle 30 flow hash keys nfct-src divisor 1024
  61. echo " TC Class 1:130 defined."
  62. # Upload LOW (default)
  63. tc class add dev ${DEV} parent 1:1 classid 1:40 hfsc sc umax 1492b dmax 40ms rate $(($LOW*$CEIL/100))kbit ls rate $(($LOW_LIM*$CEIL/100))kbit ul rate ${CEIL}kbit
  64. # tc class add dev ${DEV} parent 1:1 classid 1:40 hfsc sc rate $(($LOW*$CEIL/100))kbit ls rate $(($LOW_LIM*$CEIL/100))kbit ul rate ${CEIL}kbit
  65. tc qdisc add dev ${DEV} parent 1:40 handle 40: sfq limit 127 perturb 10
  66. tc filter add dev ${DEV} protocol all parent 1: prio 40 handle 4 fw classid 1:40
  67. tc filter add dev ${DEV} protocol all prio 1 parent 40: handle 40 flow hash keys nfct-src divisor 1024
  68. echo " TC Class 1:140 defined."
  69. # Upload LOWEST
  70. tc class add dev ${DEV} parent 1:1 classid 1:50 hfsc sc umax 1492b dmax 100ms rate $(($LOWEST*$CEIL/100))kbit ls rate $((LOWEST_LIM*$CEIL/100))kbit ul rate ${CEIL}kbit
  71. # tc class add dev ${DEV} parent 1:1 classid 1:50 hfsc sc rate $(($LOWEST*$CEIL/100))kbit ls rate $((LOWEST_LIM*$CEIL/100))kbit ul rate ${CEIL}kbit
  72. tc qdisc add dev ${DEV} parent 1:50 handle 50: sfq limit 127 perturb 10
  73. tc filter add dev ${DEV} protocol all parent 1: prio 50 handle 5 fw classid 1:50
  74. tc filter add dev ${DEV} protocol all prio 1 parent 50: handle 50 flow hash keys nfct-src divisor 1024
  75. echo " TC Class 1:150 defined."
Advertisement
Add Comment
Please, Sign In to add comment