Common Tool: NEPI
NEPI (http://nepi.inria.fr), the Network Experimentation Programming Interface, is a life-cycle management tool for network experiments. The idea behind NEPI is to provide a single tool to design, deploy, and control network experiments, and gather the experiment results. Going further, NEPI was specially conceived to function with arbitrary experimentation platforms, so researchers could use a single tool to work with network simulators, emulators, or physical testbeds, or even a mixture of them. To accomplish this, NEPI provides a high-level interface to describe experiments that is independent from any experimentation platform, but is able to capture platform specific configurations. Experiment definitions can be stored in XML format to be later reproduced, and modified according to experimentation needs. Experiment execution is orchestrated by a global experiment controller, that is platform independent, and different platform-dependent testbed controllers, creating a control hierarchy that is able to adapt to platform specific requirements while providing an integrated control scheme.
The initial focus of NEPI in Fed4FIRE is to support design, and control through the federated resource control protocol FRCP. This functionality will be available during the first round of open call experiments. To support the whole experiment life cycle, the appropriate course of actions will be defined during the course of the project, when authentication, authorization, discovery, provisioning, reservation and measurements according with other project Work Packages are in more mature state.
NEPI uses a Boxes and Connectors modelling abstraction to construct the experiment design. Each supported experimentation platform defines a set of box types, which represents the conceptual constructive blocks of an experiment. These boxes can be associated through named ports called connectors. Each connector in a box has a different function. The experiment description is thus constructed out of a graph which has Boxes as vertex. The boxes present in the experiment description and the connections between those boxes will define the experiment topology, both at a physical (infrastructure) and application (services) levels. Boxes also have a set of attributes that allow defining the experiment configuration, and traces that allow defining experiment results to be collected.