Created
September 6, 2017 19:24
-
-
Save kholisrag/3b13729ea4cd6ff32a0c018d99e1fd6e to your computer and use it in GitHub Desktop.
Shell Script for Add Queue in Open vSwitch (openvswitch), in my chase it's for openvswitch 2.7.1 with TP-Link TL=WR1043ND v4 Custom Firmware LEDE Reboot (OpenWRT)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
for i in eth0.1 eth0.2 eth0.3 eth0.4 eth0.5 eth0.6 wlan0 | |
do | |
ovs-vsctl clear Port $i qos | |
echo -e "\033[0;32m Clear QoS and Queue in $i Successful" | |
done | |
ovs-vsctl --all destroy QoS | |
ovs-vsctl --all destroy Queue | |
echo " " | |
exit 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# Bandwidth in bps | |
MAX_RATE_BW=8000000 | |
echo "Max-Rate=$(awk -v MAX_RATE_BW="$MAX_RATE_BW" 'BEGIN {printf MAX_RATE_BW/1000000}' /dev/null) Mbps" | |
LOW_PRIORITY=$(awk -v MAX_RATE_BW="$MAX_RATE_BW" 'BEGIN {printf MAX_RATE_BW*25/100}' /dev/null) | |
echo "Low-Rate=$(awk -v LOW_PRIORITY="$LOW_PRIORITY" 'BEGIN {printf LOW_PRIORITY/1000000}' /dev/null) Mbps" | |
DEFAULT_BW=$(awk -v MAX_RATE_BW="$MAX_RATE_BW" 'BEGIN {printf MAX_RATE_BW*50/100}' /dev/null) | |
echo "Default-Rate=$(awk -v DEFAULT_BW="$DEFAULT_BW" 'BEGIN {printf DEFAULT_BW/1000000}' /dev/null) Mbps" | |
HIGH_PRIORITY=$(awk -v MAX_RATE_BW="$MAX_RATE_BW" 'BEGIN {printf MAX_RATE_BW*75/100}' /dev/null) | |
echo "High-Rate=$(awk -v HIGH_PRIORITY="$HIGH_PRIORITY" 'BEGIN {printf HIGH_PRIORITY/1000000}' /dev/null) Mbps" | |
CONSTRAINED_BW=$(awk -v MAX_RATE_BW="$MAX_RATE_BW" 'BEGIN {printf MAX_RATE_BW*5/100}' /dev/null) | |
echo "Constrained-Rate=$(awk -v CONSTRAINED_BW="$CONSTRAINED_BW" 'BEGIN {printf CONSTRAINED_BW/1000000}' /dev/null) Mbps" | |
MIN_VOIP_BW=87200 | |
MIN_VIDEO_BW=5000000 | |
for i in eth0.1 eth0.2 eth0.3 eth0.4 eth0.5 eth0.6 wlan0 | |
do | |
ovs-vsctl -- \ | |
set Port $i qos=@newqos -- \ | |
--id=@newqos create QoS type=linux-htb \ | |
other-config:max-rate=$MAX_RATE_BW \ | |
queues:0=@q0 \ | |
queues:1=@q1 \ | |
queues:2=@q2 \ | |
queues:99=@q99 -- \ | |
--id=@q0 create Queue other-config:min-rate=$MIN_VOIP_BW other-config:max-rate=$LOW_PRIORITY -- \ | |
--id=@q1 create Queue other-config:max-rate=$DEFAULT_BW -- \ | |
--id=@q2 create Queue other-config:min-rate=$MIN_VIDEO_BW other-config:max-rate=$HIGH_PRIORITY -- \ | |
--id=@q99 create Queue other-config:max-rate=$CONSTRAINED_BW | |
echo -e "\033[0;32m Set Bandwidth Allocation in $i Succesful with: " | |
echo -e "\033[0;32m Max-Rate=\033[1;33m $(awk -v MAX_RATE_BW="$MAX_RATE_BW" 'BEGIN {printf MAX_RATE_BW/1000000}' /dev/null) Mbps" | |
echo -e "\033[0;32m Low-Rate=\033[1;33m $(awk -v LOW_PRIORITY="$LOW_PRIORITY" 'BEGIN {printf LOW_PRIORITY/1000000}' /dev/null) Mbps" | |
echo -e "\033[0;32m Default-Rate=\033[1;33m $(awk -v DEFAULT_BW="$DEFAULT_BW" 'BEGIN {printf DEFAULT_BW/1000000}' /dev/null) Mbps" | |
echo -e "\033[0;32m High-Rate=\033[1;33m $(awk -v HIGH_PRIORITY="$HIGH_PRIORITY" 'BEGIN {printf HIGH_PRIORITY/1000000}' /dev/null) Mbps" | |
echo -e "\033[0;32m Constrained-Rate=\033[1;33m $(awk -v CONSTRAINED_BW="$CONSTRAINED_BW" 'BEGIN {printf CONSTRAINED_BW/1000000}' /dev/null) Mbps" | |
done | |
echo -e " " | |
exit 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment