Skip to main content

A Simple tc command wrapper tool. Easy to set up traffic control of network bandwidth/latency/packet-loss to a network interface.

Project description

tcconfig

https://img.shields.io/pypi/pyversions/tcconfig.svg https://travis-ci.org/thombashi/tcconfig.svg?branch=master https://img.shields.io/github/stars/thombashi/tcconfig.svg?style=social&label=Star

Summary

A Simple tc command wrapper tool. Easy to set up traffic control of network bandwidth/latency/packet-loss to a network interface.

Traffic control features

Network

Traffic control can be specified network to apply to:

  • Outgoing/Incoming packets

  • Certain IP address/network and port

Available parameters

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 [%]

docs/gif/tcset_example.gif

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 100ms network latency

# tcset --device eth0 --delay 100

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

# tcdel --device eth0

Display traffic control configurations (tcshow command)

tcshow is a command to display traffic control to 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": {
            "network=192.168.0.10/32, port=8080": {
                "delay": "10.0",
                "loss": "0.01",
                "rate": "250K",
                "delay-distro": "2.0"
            },
            "network=0.0.0.0/0": {}
        },
        "incoming": {
            "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

Installing from PyPI

tcconfig can be installed from PyPI via pip (Python package manager) command.

sudo pip install tcconfig

Installing from binary

tcconfig can be installed environments which cannot access to PyPI directly:

  1. https://github.com/thombashi/tcconfig/releases/download/v0.7.0/tcconfig_wheel.tar.gz

  2. tar xvf tcconfig_wheel.tar.gz

  3. cd tcconfig_wheel/

  4. ./install.sh

Dependencies

Linux packages

  • iproute2 (mandatory: required for tc command)

  • iptables (optional: required to when you use --iptables option)

Linux kernel module

  • sch_netem

Python packages

Dependency python packages are automatically installed during tcconfig installation via pip.

Optional

  • netifaces
    • Suppress excessive error messages if this package is installed

Test dependencies

Documentation

http://tcconfig.rtfd.io/

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

tcconfig-0.7.1a0.tar.gz (27.4 kB view details)

Uploaded Source

Built Distribution

tcconfig-0.7.1a0-py2.py3-none-any.whl (28.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file tcconfig-0.7.1a0.tar.gz.

File metadata

  • Download URL: tcconfig-0.7.1a0.tar.gz
  • Upload date:
  • Size: 27.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for tcconfig-0.7.1a0.tar.gz
Algorithm Hash digest
SHA256 35b7f6366e3e74dd58bad1b124b53d4c8b86b7be5d24b77c3c5418da5a1df58a
MD5 30edb30f2a26c4782a844dce381bc0de
BLAKE2b-256 a86202a1e12b841a8ef191f0fbd077c7b67da2d3056d5657bfb1a536025f67e9

See more details on using hashes here.

Provenance

File details

Details for the file tcconfig-0.7.1a0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for tcconfig-0.7.1a0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 b71518de36524ba52c2c9ef34c11239657fa6bb96aa8be4b29705d57aa74ee00
MD5 39e92dd8828b9e5340eb75f450701554
BLAKE2b-256 2dee49be948b9d0e14d9ddf63629277b5267ed46dc8aee77f29891bcfdaab258

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page