An efficient data exchange algorithm for chained network functions

In-network function chaining often involves the deployment of multiple applications into a single, possibly multi-tenant, middlebox. This approach has gained much interest since new network paradigms, such as Software Defined Networking (SDN) and Network Function Virtualization (NFV), have been proposed to virtualize resources as well as network functions. In this scenario, it is very common to move data (e.g., packets) from an application to another by means of a switching module that is in charge of chaining network functions in the correct order, also ensuring an adequate level of isolation between any two virtualized components. With this purpose in mind, this paper proposes an efficient algorithm to handle the communication between the internal soft-switch and the heterogeneous network functions that are executed on the same server. Our proposal is designed with the aim of dealing with high speed packet processing, hence an extensive performance evaluation is also provided to prove the goodness of our solution in this context.

[1]  Mohamed Ahmed,et al.  Enabling dynamic network processing with clickOS , 2012, SIGCOMM.

[2]  Philippas Tsigas,et al.  Cache-Aware Lock-Free Queues for Multiple Producers/Consumers and Weak Memory Consistency , 2010, OPODIS.

[3]  Costin Raiciu,et al.  Enabling fast, dynamic network processing with clickOS , 2013, HotSDN.

[4]  Maged M. Michael,et al.  Simple, fast, and practical non-blocking and blocking concurrent queue algorithms , 1996, PODC '96.

[5]  Gergely Pongrácz,et al.  Unifying Cloud and Carrier Network: EU FP7 Project UNIFY , 2013, 2013 IEEE/ACM 6th International Conference on Utility and Cloud Computing.

[6]  Yi Zhang,et al.  A simple, fast and scalable non-blocking concurrent FIFO queue for shared memory multiprocessor systems , 2001, SPAA '01.

[7]  Theodore Johnson,et al.  A Nonblocking Algorithm for Shared Queues Using Compare-and-Swap , 1994, IEEE Trans. Computers.

[8]  Calton Pu,et al.  Threads and input/output in the synthesis kernal , 1989, SOSP '89.

[9]  Giuseppe Lettieri,et al.  VALE, a switched ethernet for virtual machines , 2012, CoNEXT '12.

[10]  Luigi Rizzo,et al.  netmap: A Novel Framework for Fast Packet I/O , 2012, USENIX ATC.

[11]  Calton Pu,et al.  A Lock-Free Multiprocessor OS Kernel , 1992, OPSR.

[12]  Luca Deri,et al.  High speed network traffic analysis with commodity multi-core systems , 2010, IMC '10.

[13]  Patrick P. C. Lee,et al.  A lock-free, cache-efficient multi-core synchronization mechanism for line-rate network traffic monitoring , 2010, 2010 IEEE International Symposium on Parallel & Distributed Processing (IPDPS).

[14]  Nir Shavit,et al.  The Baskets Queue , 2007, OPODIS.

[15]  Janice M. Stone A simple and correct shared-queue algorithm using compare-and-swap , 1990, Proceedings SUPERCOMPUTING '90.

[16]  Chen Ding,et al.  Quantifying the cost of context switch , 2007, ExpCS '07.

[17]  Fulvio Risso,et al.  Some Controversial Opinions on Software-Defined Data Plane Services , 2013, 2013 IEEE SDN for Future Networks and Services (SDN4FNS).