/sculpte-simulator

Simulator for traffic engineering protocols

Primary LanguagePythonGNU General Public License v2.0GPL-2.0

THIS IS STILL A WORK IN PROGRESS.

To run, "./simulator" A standard python installation should suffice.

Configuration in "input" file. Many different scenarios can be simulated by changing various config parameters. Please note that for IGP-WO, the link weights have to be fed in through the topo file. This simulator does not generate them. I used the excellent Totem toolset by the UCL folks.

Output in data/output/<topo_name>/run/

  • where <topo_name> is the specified topology name.
  • is the id of the experiment with that topology. starts at 0.
  • to check the result of the last run, go to the largest id.
  • run directory has dump of topology at each iteration, with
    • link loads, utilization, weights, key metrics applied. Note that
    • it only stores the info of the slice updated at that iteration. Only
    • one slice is updated durin one iteration. The state of all the
    • topologies are reflected in the previous n-1 files. It also has a
    • dump of the residual traffic in the network during that iteration.

If you have the matplotlib library and would like a nice plot of the evolution of all the link loads, enable the call to 'plot' in simulator.py. The plot will be in data/plots/...

There are 4 main classes, for managing topology, managing the traffic matrix, generating flows, and managing events.

Topo: Structure G stores topology. Stores all slices. Structure L stores link information like capacity, current load, etc. Instantiates routing object for routing flows.

TMC: Generates traffic matrix. Currently implements gravity model and bimodal model.

Flow: Generates and populates flows. Instantiates objects for specific kinds of arrival process, size of flow, etc.

Event: Handles events. Arrival/departure of flows, link updates at iterations. Arrivals are routed and link loads updated. Departures are taken off links. Instantiates specific object for link updates.