# linuxnet-qos
**linuxnet-qos** provides programmatic access to the
**tc(8)** command.
Using **linuxnet-qos** one can manipulate the Linux Traffic Control
functionality (queuing disciplines).
For the following examples, Python3 (3.6 or later) is required.
Accessing an interface's queuing discipline configuration:
```python
>>> from linuxnet.qos import QDiscConfig
>>> config = QDiscConfig('eth2')
>>> config.dump()
PFifoFastQDisc(0:0) root bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
```
`PFifoFastQDisc` is the Python class used to represent the
`pfifo_fast` queuing discipline (see **tc-pfifo_fast(8)**).
The following examples modify the interface's queuing discipline, so
root privileges are required for successful execution of the `tc`
command.
Replacing the interface's root queuing discipline:
```python
>>> from linuxnet.qos import NetemQDisc, Handle
>>> netem_qdisc = NetemQDisc(Handle(1,1), None, delay=30.0)
>>> config.create_qdisc(netem_qdisc)
>>> config.dump()
NetemQDisc(1:1) root delay 30.0ms
```
Deleting the existing queuing discipline configuration:
```python
>>> config.delete_config()
>>> config.read_interface_config()
True
>>> config.dump()
PFifoFastQDisc(0:0) root bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
```
---------------------
# Installation
Python3 is required.
Available `Makefile` targets can be listed by invoking `make` with no arguments.
`make install` will install the package.
`make test` runs the unit tests.
Raw data
{
"_id": null,
"home_page": "https://gitlab.com/panos-tools/linuxnet-qos",
"name": "linuxnet-qos",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": "Panagiotis (Panos) Tsirigotis",
"author_email": "ptsirigotis01@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/06/b7/f6e686a37a2f3a119e03a210b31197edbdcdd95f319b3f0fb829e333316e/linuxnet_qos-3.4.0.tar.gz",
"platform": null,
"description": "# linuxnet-qos\n\n**linuxnet-qos** provides programmatic access to the\n**tc(8)** command.\nUsing **linuxnet-qos** one can manipulate the Linux Traffic Control\nfunctionality (queuing disciplines).\n\nFor the following examples, Python3 (3.6 or later) is required.\n\nAccessing an interface's queuing discipline configuration:\n\n```python\n>>> from linuxnet.qos import QDiscConfig\n>>> config = QDiscConfig('eth2')\n>>> config.dump()\nPFifoFastQDisc(0:0) root bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1\n```\n\n`PFifoFastQDisc` is the Python class used to represent the\n`pfifo_fast` queuing discipline (see **tc-pfifo_fast(8)**).\n\nThe following examples modify the interface's queuing discipline, so\nroot privileges are required for successful execution of the `tc`\ncommand.\n\nReplacing the interface's root queuing discipline:\n\n```python\n>>> from linuxnet.qos import NetemQDisc, Handle\n>>> netem_qdisc = NetemQDisc(Handle(1,1), None, delay=30.0)\n>>> config.create_qdisc(netem_qdisc)\n>>> config.dump()\nNetemQDisc(1:1) root delay 30.0ms\n```\n\nDeleting the existing queuing discipline configuration:\n\n```python\n>>> config.delete_config()\n>>> config.read_interface_config()\nTrue\n>>> config.dump()\nPFifoFastQDisc(0:0) root bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1\n```\n\n---------------------\n\n# Installation\n\nPython3 is required.\n\nAvailable `Makefile` targets can be listed by invoking `make` with no arguments.\n\n`make install` will install the package.\n\n`make test` runs the unit tests.\n\n",
"bugtrack_url": null,
"license": "AGPLv3",
"summary": "programmatic access to the Linux queuing disciplines",
"version": "3.4.0",
"project_urls": {
"Documentation": "https://linuxnet-qos.readthedocs.io/en/latest/index.html",
"Homepage": "https://gitlab.com/panos-tools/linuxnet-qos",
"Source": "https://gitlab.com/panos-tools/linuxnet-qos"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c47305401af4349a639a66ea815c4d4b5b3c3c0844b404ce5c11335f680c6590",
"md5": "08268ec61bbcae11f2125efd4a26edf0",
"sha256": "22eb690b0437e4bac881af7f58f05b8fa29efd4e49ec17630667caa939f55331"
},
"downloads": -1,
"filename": "linuxnet_qos-3.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "08268ec61bbcae11f2125efd4a26edf0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 81221,
"upload_time": "2025-01-17T19:36:58",
"upload_time_iso_8601": "2025-01-17T19:36:58.113610Z",
"url": "https://files.pythonhosted.org/packages/c4/73/05401af4349a639a66ea815c4d4b5b3c3c0844b404ce5c11335f680c6590/linuxnet_qos-3.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "06b7f6e686a37a2f3a119e03a210b31197edbdcdd95f319b3f0fb829e333316e",
"md5": "6ba133858474407789ca5c84ce1353c0",
"sha256": "ac335f37b46d967e0754d8d3e7cc9b9e70f33e82d36e3a0c5cf3246d1131ffc5"
},
"downloads": -1,
"filename": "linuxnet_qos-3.4.0.tar.gz",
"has_sig": false,
"md5_digest": "6ba133858474407789ca5c84ce1353c0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 87146,
"upload_time": "2025-01-17T19:37:00",
"upload_time_iso_8601": "2025-01-17T19:37:00.458465Z",
"url": "https://files.pythonhosted.org/packages/06/b7/f6e686a37a2f3a119e03a210b31197edbdcdd95f319b3f0fb829e333316e/linuxnet_qos-3.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-01-17 19:37:00",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "panos-tools",
"gitlab_project": "linuxnet-qos",
"lcname": "linuxnet-qos"
}