A tool to simulate network conditions.
About

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:

  • Bandwith
  • Latency
  • 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.

Requirements

ATC uses iptables and tc internally, so it is only supported on linux platforms.

ATC was developed with python 2.7. Python 3 is not supported.

Architecture
Overview

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.

Contributions

Use Github issues for requests.

We actively welcome pull requests; learn how to contribute.

Changelog

Changes are tracked as Github releases.

License

Augmented Traffic Control is BSD-licensed. We also provide an additional patent grant.