tcconfig
Table of contents
Simple tc command wrapper. Easy to setup traffic control of network bandwidth/latency/packet-loss to a network interface.
Traffic control can be specified network to apply to:
- Outgoing/Incoming packets
- Certain IP address/network and port
The following parameters can be set of network interfaces.
- Network bandwidth rate [G/M/K bps]
- Network latency [milliseconds]
- Packet loss rate [%]
- Packet corruption rate [%]
tcconfig canbe installed via pip (Python package manager).
sudo pip install tcconfig
Outgoing packet traffic control settings are as follows
tcset is a command to impose traffic control to a network interface (device).
usage: tcset [-h] [--version] [--logging] [--stacktrace] [--debug | --quiet]
--device DEVICE [--overwrite] [--direction {outgoing,incoming}]
[--rate BANDWIDTH_RATE] [--delay NETWORK_LATENCY]
[--delay-distro LATENCY_DISTRO_MS] [--loss PACKET_LOSS_RATE]
[--corrupt CORRUPTION_RATE] [--network NETWORK] [--port PORT]
optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
--debug for debug print.
--quiet suppress output of execution log message.
Miscellaneous:
--logging output execution log to a file (tcset.log).
--stacktrace display stack trace when an error occurred.
Network Interface:
--device DEVICE network device name (e.g. eth0)
--overwrite overwrite existing settings
Traffic Control:
--direction {outgoing,incoming}
direction of network communication that impose traffic
control. "incoming" requires linux kernel version
2.6.20 or later. (default=outgoing)
--rate BANDWIDTH_RATE
network bandwidth rate [K|M|G bps]
--delay NETWORK_LATENCY
round trip network delay [ms] (default=0)
--delay-distro LATENCY_DISTRO_MS
distribution of network latency becomes X +- Y [ms]
(normal distribution), with this option. (X: value of
--delay option, Y: value of --delay-dist opion)
network latency distribution will uniform without this
option.
--loss PACKET_LOSS_RATE
round trip packet loss rate [%] (default=0)
--corrupt CORRUPTION_RATE
packet corruption rate [%]. corruption means single
bit error at a random offset in the packet.
(default=0)
--network NETWORK IP address/network of traffic control
--port PORT port number of traffic control
# 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 control from a network interface (device).
usage: tcdel [-h] [--version] [--logging] [--stacktrace] [--debug | --quiet]
--device DEVICE
optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
--debug for debug print.
--quiet suppress output of execution log message.
Miscellaneous:
--logging output execution log to a file (tcdel.log).
--stacktrace display stack trace when an error occurred.
Traffic Control:
--device DEVICE network device name (e.g. eth0)
# tcdel --device eth0
Execute tcset
command with --direction incoming
option to set incoming traffic control. Other options are the same as in the case of the basic usage.
tcset --device eth0 --direction outgoing --rate 200K --network 192.168.0.0/24
tcset --device eth0 --direction incoming --rate 1M --network 192.168.0.0/24
Incoming packet traffic control requires additional ifb module, Which need to the following conditions:
- Equal or later than Linux kernel version 2.6.20
- Equal or later than iproute2 package version 20070313
# tcset --device eth0 --delay 100 --delay-distro 20
- iproute2 (reqrequired for tc commandured)
Dependency python packages are automatically installed during AAA installation via pip.