Design and implementation of a framework for creating portable and efficient packet-processing applications

  • Authors:
  • Olivier Morandi;Fulvio Risso;Silvio Valenti;Paolo Veglia

  • Affiliations:
  • Politecnico di Torino, Torino, Italy;Politecnico di Torino, Torino, Italy;TELECOM-ParisTech, Paris, France;TELECOM-ParisTech, Paris, France

  • Venue:
  • EMSOFT '08 Proceedings of the 8th ACM international conference on Embedded software
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

It is a common belief that using a virtual machine for portable executions of data-plane packet-processing applications would introduce too many penalties in terms of performance, because of the assumed overhead caused by the presence of a hardware abstraction layer. Even if common sense proves true in the case of general purpose virtual machines, such as the JVM and the CLR, it may be wrong in case of a special-purpose network-oriented virtual machine. This paper describes the architecture of a run-time environment and a compiler infrastructure for the Network Virtual Machine (NetVM), showing that the portability of packet-processing programs can be achieved without additional penalties even over heterogeneous platforms. Our implementation supports three different target architectures: one with a general purpose processor (Intel x86), one with a multi-core network processor (Cavium Octeon) and one with a systolic-array network processor (Xelerated X11), and shows that the NetVM model (i) is able to abstract such heterogeneous platforms and (ii) enables the exploitation of hardware functionalities provided by the specific architecture; finally, it demonstrates that the performances of NetVM programs compiled into native code are comparable to those obtained using commercial general purpose compilers.