A Simple tc command wrapper tool. Easy to set up traffic control of network bandwidth/latency/packet loss/packet-corruption to a network interface.
Project description
tcconfig
Summary
A Simple tc command wrapper tool. Easy to set up traffic control of network bandwidth/latency/packet loss/packet-corruption to a network interface.
Traffic control features
Traffic shaping target
Apply traffic shaping rules to specific targets:
Outgoing/Incoming packets
Source/Destination IP-address/network (IPv4/IPv6)
Source/Destination ports
Moreover, exclude from shaping rules from specific targets:
Source/Destination IP-address/network (IPv4/IPv6)
Source/Destination ports
Available parameters
The following parameters can set to network interfaces:
Network bandwidth rate [G/M/K bps]
Network latency [microseconds/milliseconds/seconds/minutes]
Packet loss rate [%]
Packet corruption rate [%]
Packet duplicate rate [%]
Packet reordering rate [%]
Usage
Set traffic control (tcset command)
tcset is a command to add traffic control rule to a network interface (device).
e.g. Set a limit on bandwidth up to 100Kbps
# tcset --device eth0 --rate 100k
e.g. Set network latency
You can use time units (such as us/sec/min/etc.) to designate delay time.
Set 100 milliseconds network latency
# tcset --device eth0 --delay 100ms
Set 10 seconds network latency
# tcset --device eth0 --delay 10sec
Set 0.5 minutes (30 seconds) network latency
# tcset --device eth0 --delay 0.5min
e.g. Set 0.1% packet loss
# tcset --device eth0 --loss 0.1
e.g. All of the above at once
# tcset --device eth0 --rate 100k --delay 100 --loss 0.1
e.g. Specify the IP address of traffic control
# tcset --device eth0 --delay 100 --network 192.168.0.10
e.g. Specify the IP network and port of traffic control
# tcset --device eth0 --delay 100 --network 192.168.0.0/24 --port 80
Delete traffic control (tcdel command)
tcdel is a command to delete traffic shaping rules from a network interface (device).
e.g. Delete traffic control of eth0
You can delete all of the shaping rules for the eth0 with -a/--all option:
# tcdel --device eth0 --all
Display traffic control configurations (tcshow command)
tcshow is a command to display the current traffic control settings for network interface(s).
Example
# 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"
}
}
}
}
For more information
More examples are available at http://tcconfig.rtfd.io/en/latest/pages/usage/index.html
Installation
Install via pip (recommended)
tcconfig can be installed from PyPI via pip (Python package manager) command.
sudo pip install tcconfig
Install in Debian/Ubuntu from a deb package
wget https://github.com/thombashi/tcconfig/releases/download/<version>/tcconfig_<version>_amd64.deb
dpkg -iv tcconfig_<version>_amd64.deb
- Example:
$ wget https://github.com/thombashi/tcconfig/releases/download/v0.17.1/tcconfig_0.17.1_amd64.deb $ sudo dpkg -i tcconfig_0.17.1_amd64.deb
Installing from files
The following package includes 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
Dependencies
Python 2.7+ or 3.4+
Linux packages
- mandatory: required for tc command:
ubuntu/debian: iproute2
fedora/RHEL: iproute-tc
- optional: required to when you use --iptables option:
iptables
Linux kernel module
sch_netem
Python packages
Dependency python packages are automatically installed during tcconfig installation via pip.
Optional Python packages
- netifaces
Suppress excessive error messages if this package installed
Test dependencies
Documentation
Troubleshooting
http://tcconfig.readthedocs.io/en/latest/pages/troubleshooting.html
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for tcconfig-0.18.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6f16d56e6feea8bfd057256ffc3881543f7ee0c9c2e8bd37e988ec995092d6c |
|
MD5 | 296c52b0c16761553eca4894dfbe18c1 |
|
BLAKE2b-256 | 036e5953e6e2f154018b44e4dbdb26900ef40970737432301f4e1ed10b3237e8 |