QoE testbed for sampling constrained applications like Skype
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Rigel Kent a6fcd38639 october update 1 year ago
app error handling is properly done; testing values removed in the client code 1 year ago
config october update 1 year ago
db added new interface with colors and redirected the logging to log directory 1 year ago
experiment.skype relative vagrant script update 1 year ago
experiment.yt added new interface with colors and redirected the logging to log directory 1 year ago
http added new interface with colors and redirected the logging to log directory 1 year ago
net error handling is properly done; testing values removed in the client code 1 year ago
sampling initial commit, with T. Spetebroot's code + support for the Skype experiment 1 year ago
tests initial commit, with T. Spetebroot's code + support for the Skype experiment 1 year ago
threading_utils initial commit, with T. Spetebroot's code + support for the Skype experiment 1 year ago
utils added new interface with colors and redirected the logging to log directory 1 year ago
vw initial commit, with T. Spetebroot's code + support for the Skype experiment 1 year ago
websocket added new interface with colors and redirected the logging to log directory 1 year ago
.gitignore relative vagrant script update 1 year ago
.venv october update 1 year ago
LICENSE.md verified the virtualenv-create make target, and verified requirements.txt 1 year ago
README.md added new interface with colors and redirected the logging to log directory 1 year ago
__init__.py october update 1 year ago
automata.py added new interface with colors and redirected the logging to log directory 1 year ago
db_start.py initial commit, with T. Spetebroot's code + support for the Skype experiment 1 year ago
event_dispatching.py initial commit, with T. Spetebroot's code + support for the Skype experiment 1 year ago
event_loop.py added new interface with colors and redirected the logging to log directory 1 year ago
experiment.yt.visualization.example.png added new interface with colors and redirected the logging to log directory 1 year ago
experimenter.py error handling is properly done; testing values removed in the client code 1 year ago
main.py october update 1 year ago
makefile added new interface with colors and redirected the logging to log directory 1 year ago
qoef.py october update 1 year ago
requirements.txt verified the virtualenv-create make target, and verified requirements.txt 1 year ago
sampler.py added new interface with colors and redirected the logging to log directory 1 year ago
subprocessutils.py initial commit, with T. Spetebroot's code + support for the Skype experiment 1 year ago
tc.sh added new interface with colors and redirected the logging to log directory 1 year ago

README.md

MM'"""""`MMM          MM""""""""`M MM""""""""`M 
M  .mmm,  MM          MM  mmmmmmmM MM  mmmmmmmM 
M  MMMMM  MM .d8888b. M`      MMMM M'      MMMM 
M  MM  M  MM 88'  `88 MM  MMMMMMMM MM  MMMMMMMM 
M  `MM    MM 88.  .88 MM  MMMMMMMM MM  MMMMMMMM 
MM.    .. `M `88888P' MM        .M MM  MMMMMMMM 
MMMMMMMMMMMM          MMMMMMMMMMMM MMMMMMMMMMMM

QoE Factory

A network interface constraint-based testbed in Python 2.7 developed at DIANA@INRIA.

Provided you make a program use a network interface in particular (see our two examples), you can test its behaviour under network constraints set by the testbed. You can use it to test applications that cannot run through a particular interface by embedding them in a VM (see second example).

Getting Started

Clone the repository. Check the prerequisistes below. Type make to get an idea of useful commands, or main.py --help to get an idea of useful parameters.

Create a virtualenv for the project and run <virtualenv pip bin> install -r requirements.txt.

Run sudo <virtualenv python bin> main.py <interface to constraint> to launch. The program will then be waiting for a client to connect. Beware, it only supports one client at a time.

A simple client example is provided along: tests/ws_client.py.

Prerequisites

It runs only on a Linux system, since it relies on tc (traffic control). You need a python 2.7 and a virtualenv to avoid package collisions (e.g: enum and enum34).

You need to set the conf/static.json according to your system, and change the path to your virtualenv binary folder in net/netutils.py.

Built With

  • tea - The new coffee
  • pip - Dependency Management
  • SALib - Used to generate points in the experimentation space
  • Vowpal Wabbit - Used for active learning (default: disabled)
  • MongoDB - Used to store the experiment points (default: running)

Live visual representation of your results

You probably know how to represent your results to your audience better than us, but know that you can quickly run various visualization examples via make vue:

Visualization of the sampled space and labels

Contributing

You can contact the authors directly, although no support is guaranted, we like helping other research teams.

Authors

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments

  • The whole DIANA team for supervision and suggestions