/pifo-compiler

Compiler for packet scheduling programs

Primary LanguagePython

Prereqs:

  • sudo pip install graphviz
  • sudo pip install pydot2

pifo-compiler:

  • run as : python pifo_compiler.py example.dot
  • output:
    • examplecompilation.cc (compile with pifo-machine source code to produce executable)
    • exampleEnqueues.gv.pdf (printout of mesh configuration)
  • input reqs:
    • nodes as PIFOs
    • directed edges from parent to child in tree structure
    • each node has unique name
    • names are valid variable names in C++
    • each node has attributes shaping, schedule, and predicate
    • predicate either of form "True" or "p.class==match"
    • schedule is valid c++ function acting on field container x
    • shaping "NULL" or valid c++ function acting on field container x

mahi-compiler:

  • run as : python mahi_compiler.py example.dot
  • output:
    • exampleMahicompilation.cc (compile with Mahimahi source code to produce executable)
    • exampleEnqueues.gv.pdf (printout of mesh configuration)
  • input reqs:
    • same as pifo-compiler, except
    • schedule is valid c++ function acting on QueuedPacket x
    • shaping "NULL" or valid c++ function acting on QueuedPacket x