Augmented Traffic Control (aka ATC) is a project that allows developers to control the connection that a device has to the internet. Developers can use ATC to test their application across varying network conditions, easily emulating high speed, mobile, and even severely impaired networks.
Aspects that can be controlled by ATC include:
- Packet loss
- Packet corruption
- Packet reordering
Because ATC runs on a gateway, any devices that are connected to a network routing through it, can use it to shape its traffic. Traffic can be shaped/unshaped using a web interface allowing any devices that have a web browser to use ATC without the need for a client application.
ATC was developed with python 2.7. Python 3 is not supported.
Augmented Traffic Control is made of a set of applications that inter-operate together. At the core of it is atcd, the ATC daemon, that is responsible for setting shaping characteristics.
atcd provides a Thrift interface in order to interact with it.
A django REST API, django-atc-api, is also provided in order to make it easier to build web applications that can interact with atcd using the well known REST paradigm.
To get people started, a simple Web UI is provided: django-atc-demo-ui.
Use Github issues for requests.
We actively welcome pull requests; learn how to contribute.
Changes are tracked as Github releases.