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 5 years ago
app error handling is properly done; testing values removed in the client code 6 years ago
config october update 5 years ago
db added new interface with colors and redirected the logging to log directory 6 years ago
experiment.skype relative vagrant script update 6 years ago
experiment.yt added new interface with colors and redirected the logging to log directory 6 years ago
http added new interface with colors and redirected the logging to log directory 6 years ago
net error handling is properly done; testing values removed in the client code 6 years ago
sampling initial commit, with T. Spetebroot's code + support for the Skype experiment 6 years ago
tests initial commit, with T. Spetebroot's code + support for the Skype experiment 6 years ago
threading_utils initial commit, with T. Spetebroot's code + support for the Skype experiment 6 years ago
utils added new interface with colors and redirected the logging to log directory 6 years ago
vw initial commit, with T. Spetebroot's code + support for the Skype experiment 6 years ago
websocket added new interface with colors and redirected the logging to log directory 6 years ago
.gitignore relative vagrant script update 6 years ago
.venv october update 5 years ago
LICENSE.md verified the virtualenv-create make target, and verified requirements.txt 6 years ago
README.md added new interface with colors and redirected the logging to log directory 6 years ago
__init__.py october update 5 years ago
automata.py added new interface with colors and redirected the logging to log directory 6 years ago
db_start.py initial commit, with T. Spetebroot's code + support for the Skype experiment 6 years ago
event_dispatching.py initial commit, with T. Spetebroot's code + support for the Skype experiment 6 years ago
event_loop.py added new interface with colors and redirected the logging to log directory 6 years ago
experiment.yt.visualization.example.png added new interface with colors and redirected the logging to log directory 6 years ago
experimenter.py error handling is properly done; testing values removed in the client code 6 years ago
main.py october update 5 years ago
makefile added new interface with colors and redirected the logging to log directory 6 years ago
qoef.py october update 5 years ago
requirements.txt verified the virtualenv-create make target, and verified requirements.txt 6 years ago
sampler.py added new interface with colors and redirected the logging to log directory 6 years ago
subprocessutils.py initial commit, with T. Spetebroot's code + support for the Skype experiment 6 years ago
tc.sh added new interface with colors and redirected the logging to log directory 6 years 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