# measurement-framework
Part of ARCFIRE 2020, WP3 work package.

Workflow, both external and internal:

  (1) user defines the network graph, creating instances of model.Node
    and model.DIF classes

  (2) user creates an instance of a Testbed class

  (3) user creates an instance of prototype.Experiment class, passing
    the testbed instance and a list of Node instances
        - at the endo of the base Experiment constructor, the
          generate function is called to generate information about
          per-node IPCPs, registrations and enrollment, ready to be
          used by the plugins

  (4) user calls run() on the prototype.Experiment instance:
        - First, run() calls Experiment.swap_in(), which
          in turns calls Testbed.create_experiment(), passing the
          nodes and links (?)
          TODO: fix this interface: what should swap_in(), and
          so create_experiment() return exactly? Current interface
          seems broken

        - Second, run() calls a prototype-specific setup function,
          to create the required IPCPs, perform registrations,
          enrollments, etc.

        - Third, perform tests (TODO)