Section: New Software and Platforms


Participants : Thierry Turletti [correspondant] , Alina Ludmila Quereilhac, Thierry Parmentelat, Mario Antonio Zancanaro.

NEPI, the Network Experimentation Programming Interface, is a framework to describe and orchestrate network experiments on a variety of network experimentation platforms, including simulators, emulators, live testbeds, and testbed federations. NEPI is capable of supporting arbitrary platforms through the use of a generic network experiment description model, based on abstracting network experiments as a collection of arbitrary resource objects, and through the generalization of the experiment life cycle for all resources. The common resource life cycle consists of the sequence of operations deploy, start, stop, and release. Different resource objects can implement specific versions of those operations to adapt to any platform. NEPI resolves experiment orchestration as an online scheduling problem.

In the context of Alina Quereilhac PhD, we generalized in 2015 the network experiments automation framework for arbitrary evaluation platforms, and for scenarios targeting any networking research domain. The proposed approach is based on abstracting the experiment life cycle for different platforms into generic steps that are valid for simulators, emulators, and testbeds. Based on these steps, a generic experimentation architecture was proposed and implemented, composed of an experiment model, an experimentation interface, and an orchestration algorithm. Three main aspects of the framework were evaluated: its extensibility to support heterogeneous platforms, its efficiency to orchestrate experiments, and its flexibility to support diverse use cases for different networking research domains, including education, platform management, and experimentation with testbed federations, and cross-platform and multi-platform scenarios. The results show that the proposed approach can be used to efficiently automate experimentation on heterogeneous evaluation platforms, for a wide range of scenarios.

On a much more practical level, NEPI is now available in a version numbered 6, that can run within both python2 and python3 environments.

  • URL: http://nepi.inria.fr

  • Version: 6.0

  • ACM: C.2.2, C.2.4

  • Keywords: networking experimentation, simulation, emulation

  • License: GPL (3)

  • Type of human computer interaction: python library

  • OS/Middleware: Linux

  • Required library or software: matplotlib - graphviz (both optional)

  • Programming language: python2 or python3