A Simple tc command wrapper tool. Easy to set up traffic control of network bandwidth/latency/packet-loss to a network interface.
Apply traffic shaping rules to specific target:
- Outgoing/Incoming packets
- Certain IP address/network or port
The following parameters can be set to network interfaces.
- Network bandwidth rate [G/M/K bps]
- Network latency [milliseconds]
- Packet loss rate [%]
- Packet corruption rate [%]
tcset
is a command to add traffic control rule to a network interface (device).
# tcset --device eth0 --rate 100k
# tcset --device eth0 --delay 100
# tcset --device eth0 --loss 0.1
# tcset --device eth0 --rate 100k --delay 100 --loss 0.1
# tcset --device eth0 --delay 100 --network 192.168.0.10
# tcset --device eth0 --delay 100 --network 192.168.0.0/24 --port 80
tcdel
is a command to delete traffic shaping rules from a network interface (device).
# tcdel --device eth0
tcshow
is a command to display traffic control to network interface(s).
# tcset --device eth0 --delay 10 --delay-distro 2 --loss 0.01 --rate 0.25M --network 192.168.0.10 --port 8080
# tcset --device eth0 --delay 1 --loss 0.02 --rate 500K --direction incoming
# tcshow --device eth0
{
"eth0": {
"outgoing": {
"dst-network=192.168.0.10/32, dst-port=8080": {
"delay": "10.0",
"loss": "0.01",
"rate": "250K",
"delay-distro": "2.0"
},
"dst-network=0.0.0.0/0": {}
},
"incoming": {
"dst-network=0.0.0.0/0": {
"delay": "1.0",
"loss": "0.02",
"rate": "500K"
}
}
}
}
More examples are available at http://tcconfig.rtfd.io/en/latest/pages/usage/index.html
tcconfig
can be installed from PyPI via
pip (Python package manager) command.
sudo pip install tcconfig
The following package include tcconfig
and dependency packages.
This package is for environments which cannot access to
PyPI directly.
How to install:
- Navigate to
https://github.com/thombashi/tcconfig/releases/
- Download the latest version of
tcconfig_wheel.tar.gz
- Copy
tcconfig_wheel.tar.gz
to installation target tar xvf tcconfig_wheel.tar.gz
cd tcconfig_wheel/
./install.sh
iproute
/iproute2
(mandatory: required for tc command)iptables
(optional: required to when you use--iptables
option)
sch_netem
Dependency python packages are automatically installed during
tcconfig
installation via pip.
- netifaces
- Suppress excessive error messages if this package is installed
http://tcconfig.readthedocs.io/en/latest/pages/troubleshooting.html