diff options
author | netblue30 <netblue30@yahoo.com> | 2015-08-08 19:12:30 -0400 |
---|---|---|
committer | netblue30 <netblue30@yahoo.com> | 2015-08-08 19:12:30 -0400 |
commit | 1379851360349d6617ad32944a25ee5e2bb74fc2 (patch) | |
tree | f69b48e90708bfa3c2723d5a27ed3e024c827b43 /src/fshaper/fshaper.sh | |
parent | delete files (diff) | |
download | firejail-1379851360349d6617ad32944a25ee5e2bb74fc2.tar.gz firejail-1379851360349d6617ad32944a25ee5e2bb74fc2.tar.zst firejail-1379851360349d6617ad32944a25ee5e2bb74fc2.zip |
Baseline firejail 0.9.28
Diffstat (limited to 'src/fshaper/fshaper.sh')
-rwxr-xr-x | src/fshaper/fshaper.sh | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/fshaper/fshaper.sh b/src/fshaper/fshaper.sh new file mode 100755 index 000000000..4045fd5a4 --- /dev/null +++ b/src/fshaper/fshaper.sh | |||
@@ -0,0 +1,69 @@ | |||
1 | #!/bin/bash | ||
2 | |||
3 | usage() { | ||
4 | echo "Usage:" | ||
5 | echo " fshaper.sh --status" | ||
6 | echo " fshaper.sh --clear device" | ||
7 | echo " fshaper.sh --set device download-speed upload-speed" | ||
8 | } | ||
9 | |||
10 | if [ "$1" = "--status" ]; then | ||
11 | /sbin/tc -s qdisc ls | ||
12 | /sbin/tc -s class ls | ||
13 | exit | ||
14 | fi | ||
15 | |||
16 | if [ "$1" = "--clear" ]; then | ||
17 | if [ $# -ne 2 ]; then | ||
18 | echo "Error: invalid command" | ||
19 | usage | ||
20 | exit | ||
21 | fi | ||
22 | |||
23 | DEV=$2 | ||
24 | echo "Removing bandwith limits" | ||
25 | /sbin/tc qdisc del dev $DEV root 2> /dev/null > /dev/null | ||
26 | /sbin/tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null | ||
27 | exit | ||
28 | |||
29 | fi | ||
30 | |||
31 | if [ "$1" = "--set" ]; then | ||
32 | DEV=$2 | ||
33 | echo "Removing bandwith limit" | ||
34 | /sbin/tc qdisc del dev $DEV ingress #2> /dev/null > /dev/null | ||
35 | |||
36 | if [ $# -ne 4 ]; then | ||
37 | echo "Error: missing parameters" | ||
38 | usage | ||
39 | exit | ||
40 | fi | ||
41 | |||
42 | DEV=$2 | ||
43 | echo "Configuring interface $DEV " | ||
44 | |||
45 | IN=$3 | ||
46 | IN=$((${IN} * 8)) | ||
47 | echo "Download speed ${IN}kbps" | ||
48 | |||
49 | OUT=$4 | ||
50 | OUT=$((${OUT} * 8)) | ||
51 | echo "Upload speed ${OUT}kbps" | ||
52 | |||
53 | echo "cleaning limits" | ||
54 | /sbin/tc qdisc del dev $DEV root 2> /dev/null > /dev/null | ||
55 | /sbin/tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null | ||
56 | |||
57 | echo "configuring tc ingress" | ||
58 | /sbin/tc qdisc add dev $DEV handle ffff: ingress #2> /dev/null > /dev/null | ||
59 | /sbin/tc filter add dev $DEV parent ffff: protocol ip prio 50 u32 match ip src \ | ||
60 | 0.0.0.0/0 police rate ${IN}kbit burst 10k drop flowid :1 #2> /dev/null > /dev/null | ||
61 | |||
62 | echo "configuring tc egress" | ||
63 | /sbin/tc qdisc add dev $DEV root tbf rate ${OUT}kbit latency 25ms burst 10k #2> /dev/null > /dev/null | ||
64 | exit | ||
65 | fi | ||
66 | |||
67 | echo "Error: missing parameters" | ||
68 | usage | ||
69 | exit 1 | ||