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 eth0 --rate 100Kbps
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 eth0 --delay 100ms
Set 10 seconds network latency
# tcset eth0 --delay 10sec
Set 0.5 minutes (30 seconds) network latency
# tcset eth0 --delay 0.5min
You can also use the following units:
m/min/mins/minute/minutes
s/sec/secs/second/seconds
ms/msec/msecs/millisecond/milliseconds
us/usec/usecs/microsecond/microseconds
e.g. Set 0.1% packet loss
# tcset eth0 --loss 0.1
e.g. All of the above settings at once
# tcset eth0 --rate 100Kbps --delay 100ms --loss 0.1
e.g. Specify the IP address of traffic control
# tcset eth0 --delay 100ms --network 192.168.0.10
e.g. Specify the IP network and port of traffic control
# tcset eth0 --delay 100ms --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 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 eth0 --delay 10 --delay-distro 2 --loss 0.01 --rate 0.25M --network 192.168.0.10 --port 8080
# tcset eth0 --delay 1 --loss 0.02 --rate 500K --direction incoming
# tcshow 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.19.0/tcconfig_0.19.0_amd64.deb $ sudo dpkg -i tcconfig_0.19.0_amd64.deb
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
File details
Details for the file tcconfig-0.20.0.tar.gz
.
File metadata
- Download URL: tcconfig-0.20.0.tar.gz
- Upload date:
- Size: 52.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4dde5f278be3f2b19c23b33f7a12a5f03f6992f30eb5b1e50ba53d39365b7178 |
|
MD5 | 0dc3e36bee392e1b54838ce1f3e86c12 |
|
BLAKE2b-256 | 31a1ac2870a434b97933fcb2eebdcce7ac45cfe94f92738b63c0ca77481efb50 |
Provenance
File details
Details for the file tcconfig-0.20.0-py2.py3-none-any.whl
.
File metadata
- Download URL: tcconfig-0.20.0-py2.py3-none-any.whl
- Upload date:
- Size: 51.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05898ef61b09a1bb1724d4f7af38c1dcf9dcd2873541c2cda3236e4bebdd0db6 |
|
MD5 | 4d7ce0fc2890c681cd851e8f3535be1b |
|
BLAKE2b-256 | 792eb1e8cb77ab2968c6e930fedfea5d6eae94ed1b0dca5a31555d896779884b |