An effective packet processing abstraction that leverages software or hardware acceleration techniques can simplify the implementation of high-performance virtual network functions. In this paper, we explore the suitability of SDN switches' stateful forwarding abstractions to model accelerated functions in both software and hardware accelerators, such as optimized software switches and FPGA-based NICs. In particular, we select an Extended Finite State Machine abstraction and demonstrate its suitability by implementing the Linux's iptables interface. By doing so, we provide the acceleration of functions such as stateful firewalls, load balancers and dynamic NATs. We find that supporting a flow-level programming consistency model is an important feature of a programming abstraction in this context. Furthermore, we demonstrate that such a model simplifies the scaling of the system when implemented in software, enabling efficient multi-core processing without harming state consistency.
Click @cite_8 adopts a model in which arbitrary functional blocks, called elements, can be composed into graphs to implement a network function. ClickNP @cite_43 uses the Click's abstraction but adds the possibility to implement some elements as hardware functions to be run on, e.g., a smart NIC. However, in SoftFlow, Click and ClickNP actions or elements implementation is still a complex task, which has to be performed if there are no pre-implemented modules that meet the developer's need. To address this issue, NetBricks @cite_5 defines as abstraction a set of more fine-granular primitives that combined can describe a large number of software network functions. The primitives implementation is optimized, therefore functions expressed using the NetBricks' abstraction provide high-performance. In this sense, our approach is similar, since we adopt the set of fine-granular MAT-based OPP functions to describe network functions. Still, the approaches differ in flexibility and hardware support. NetBricks is more flexible and expressive, but targets pure software functions. Our OPP-based solution can express only network functions that deal with packet headers, but provides full hardware support.
@cite_43 @cite_5 @cite_8
2579461576 2156874421
The move from hardware middleboxes to software network functions, as advocated by NFV, has proven more challenging than expected. Developing new NFs remains a tedious process, requiring that developers repeatedly rediscover and reapply the same set of optimizations, while current techniques for providing isolation between NFs (using VMs or containers) incur high performance overheads. In this paper we describe NetBricks, a new NFV framework that tackles both these problems. For building NFs we take inspiration from modern data analytics frameworks (e.g., Spark and Dryad) and build a small set of customizable network processing elements. We also embrace type checking and safe runtimes to provide isolation in software, rather than rely on hardware isolation. NetBricks provides the same memory isolation as containers and VMs, without incurring the same performance penalties. To improve I O efficiency, we introduce a novel technique called zero-copy software isolation. Click is a new software architecture for building flexible and configurable routers. A Click router is assembled from packet processing modules called elements. Individual elements implement simple router functions like packet classification, queueing, scheduling, and interfacing with network devices. Complete configurations are built by connecting elements into a graph; packets flow along the graph's edges. Several features make individual elements more powerful and complex configurations easier to write, including pull processing, which models packet flow driven by transmitting interfaces, and flow-based router context, which helps an element locate other interesting elements.We demonstrate several working configurations, including an IP router and an Ethernet bridge. These configurations are modular---the IP router has 16 elements on the forwarding path---and easy to extend by adding additional elements, which we demonstrate with augmented configurations. On commodity PC hardware running Linux, the Click IP router can forward 64-byte packets at 73,000 packets per second, just 10 slower than Linux alone.