OneLab build of PlanetLab
In the context of the OneLab project, our project-team is in charge of the codebase management for the PlanetLab Europe platform. This codebase was initially created from an import of the standard PlanetLab software, on top of which we have implemented a variety of improvements. A major contribution has been to write the first implementation of the federation mechanism that allows PlanetLab Central and PlanetLab Europe to run as peer systems, offering any user a consolidated view of all federating resources regardless of the user's affiliation. We have also contributed various improvement to handle more heterogeneous types of hardware, like e.g. wireless or multi-homed connectivity. Until 2007, the collaboration scheme with Princeton University has been upstream-downstream: we were free to make any change to the Princeton code provided that we adhered some standard interfaces, and Princeton was free to import any of our changes if they seemed interesting. We are now moving towards a co-development model, where we would share the same codebase as Princeton, so as to ease cross-importations that, over time, have become more and more frequent, but time-consuming. The software built out of our codebase is known as 'the OneLab build' of the PlanetLab software. We know of at least two institutions, HUJI and University of Tokyo, who use this release rather than the Princeton one.
Over 2008, we have kept on developping new features and enhancements for the PlanetLab software. A substantial part of our activities have been devoted to bringing the project to a more mature stage. In a first direction, we have now completed the move towards an almost full co-development model; all the OneLab-specific features have now been merged into the mainstream codebase that is located under http://svn.planet-lab.org/ ; the builds that are published for PlanetLab Europe, and for the general public, can and that can be found under http://build.onelab.eu/ , now differ from the stock PlanetLab distribution only by a few tweaks. Secondly, we have contributed a validation framework that allows continuous integration, as daily builds now run a set of non-regression tests. Last, we have brought more general support for the underlying Linux distribution, that allows to build the software for different release levels of Fedora and CentOS. Leveraging on these contributions, we've ben ale to take an active part in the delivery of version 4.2 earlier this year, that brought man innovations to the core system, including a complete rewrite of the network isolation mechanisms (known as vnet), as well as a new module for punching holes in the slice-isolation layer (known as vsys). We are now involved in the making of version 5.0, that aims at defining a more extensible data model for handling much more heterogeneous resources.
Besides, our initial implementation of the federation code is still current, and is what the current peering link between PlanetLab Central and PlanetLab Europe is running on. On the mid-term run, there are plans to modify it so it can cope with a wider federation without needing a n-square peering scheme. This has lead us to propose a hierarchy-based variant of the current federation scheme. Other more ambitious alternatives, like the one promoted by GENI for federating testbeds beyond the PlanetLab ecosystem, are also being explored.