Skip to content

Instantly share code, notes, and snippets.

@kholisrag
Created September 6, 2017 19:24
Show Gist options
  • Save kholisrag/3b13729ea4cd6ff32a0c018d99e1fd6e to your computer and use it in GitHub Desktop.
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)
#!/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
#!/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