Skip to main content

PyNetem is a tool that allow the user to limit the bandwidth or simulate weak network.

Project description

pynetem

PyNetem is a tool that allow the user to limit the bandwidth or simulate weak network. It does so by using iproute's tc command, but greatly simplifies its operation. And provide apis if you need in your work.

Installation

pip install pynetem

How to Use It?

In command mode, type pynetem -h, you will see help information, parameters in this tool is same as 'tc/netem'.

If the host cannot download package from PyPI, you can use PyNetem (>=0.1.2) in your PC (no mater Windows or Linux) with the following parameters in addition:

--host          The host IP, which you will send command to
--usrname       The username of host
--password      The password of host

You can also use original command of tc/netem. For more information about tc/netem, you can click here: netem

It is recommended to use web mode, when you have several hosts to control, or you want to build a web page for easier usage.

Run in web mode: pynetem --web, default port is 8899, you can specify by yourself pynetem --web --port=9090

There are 8 APIs:

[GET] /pynetem/help                                     -- Get demo post data and simple description
[GET] /pynetem/listInterfaces                           -- Get interfaces name of host
[GET] /pynetem/getRules?eth=<interface name>            -- Get qdisc rules by interface
[GET/DELETE] /pynetem/clear?eth=<interface name>        -- Clear all rules
[POST] /pynetem/setRules?eth=<interface name>           -- Set tc qdisc rule

[POST] /pynetem/brctl/addbr                             -- Set bridge, the bridge name is pynetem_bridge by defaut
[GET/DELETE] /pynetem/brctl/delbr                       -- Delete pynetem_bridge
[POST] /pynetem/brctl/addif                             -- Add interface(s) to pynetem_bridge

Post Body, if you set parameter None or '', the parameter will be ignored.

Format for the options is the same as tc-netem's and tc-tbf's.

[POST] /pynetem/setRules?eth=<interface name>

{
    "delay": "100ms 10ms 25%",
    "distribution": "normal",
    "reorder": "25% 50%",
    "loss": "0.3% 25%",
    "duplicate": "1%",
    "corrupt": "0.1%",
    # Bitrate control using Netem 
    "netem_rate": "256kbit",
    "netem_limit": 3000,
    # Bitrate control using TBF
    "rate": "256kbit",
    "buffer": 1600,
    "limit": 3000,
    "dst": "10.10.10.0/24"
}

netem_rate and rate are mutually exclusive.

buffer, limit, and dst can only be used if rate is set.


[POST] /pynetem/brctl/addbr

stp is "on" by default.

{
    "interfaces": ["eth0", "eth1"],
    "stp": "on"
}

[POST] /pynetem/brctl/addif

{
    "interfaces": ["eth2"]
}

ATTENTION!

When you press ctrl + c to stop the web server, ALL qdisc rules in all interfaces AND the pynetem_bridge will be cleared automatically.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pynetem-0.1.5.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

pynetem-0.1.5-py2.py3-none-any.whl (11.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pynetem-0.1.5.tar.gz.

File metadata

  • Download URL: pynetem-0.1.5.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for pynetem-0.1.5.tar.gz
Algorithm Hash digest
SHA256 095f777edb74ff1ec44449454b8381be0f2881df3974dcba5df46df6727cc542
MD5 ff1a828211484e86d12d0d09e6d2730a
BLAKE2b-256 b05d14be90499a1d314e77131a8438b108d1780ebc14bf771105ef549fd54257

See more details on using hashes here.

File details

Details for the file pynetem-0.1.5-py2.py3-none-any.whl.

File metadata

  • Download URL: pynetem-0.1.5-py2.py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for pynetem-0.1.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 42901d65c7a82b269df8b0ae36ab0f5154104ae14c0259ad68da0a5152ad9a91
MD5 ca833315c1145e2141515b41a54450c3
BLAKE2b-256 47ad30bc83d2b23f01d4c0c624657b33c23d245b1bb4e3ce602800bd43c1770c

See more details on using hashes here.

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