A Framework for Network Function Decomposition and Deployment

Network Function Virtualization (NFV) enables fast provisioning of packet processing logic on general purpose CPUs. This approach, however, does not scale well to very high speed traffic. Programmable hardware solutions, including those based on programmable switches, are emerging as an option for accelerating and scaling network functions. Unfortunately, every type of programmable hardware has specific characteristics that do not make it suitable for running all possible functions. We argue that an efficient strategy is decomposing network functions into components that can run on CPUs or that can be offloaded to specific programmable hardware depending on their characteristics.This paper presents a preliminary work on a framework for automating the decomposition and deployment of network functions. The framework includes an orchestrator that chooses the best decomposition according to the traffic demands, the network topology and other constraints. It also provides a tool to combine multiple functions into a single P4 program that can be deployed to a programmable switch. Finally, the framework comprises a set of tools to deploy the network functions either as containers running in a data center or as programs loaded in a programmable switch.We present numerical results to highlight the advantages of partially offloading decomposed VNFs to programmable hardware over a pure software solution. We also highlight the robustness of the approach showing how the model reacts in case of network failures.

[1]  Pavlin Radoslavov,et al.  ONOS: towards an open, distributed SDN OS , 2014, HotSDN.

[2]  Stefano Secci,et al.  Virtual network functions placement and routing optimization , 2015, 2015 IEEE 4th International Conference on Cloud Networking (CloudNet).

[3]  Clarence Filsfils,et al.  Segment Routing Architecture , 2018, RFC.

[4]  Clarence Filsfils,et al.  The Segment Routing Architecture , 2014, 2015 IEEE Global Communications Conference (GLOBECOM).

[5]  Salvatore Pontarelli,et al.  Implementing iptables using a programmable stateful data plane abstraction: Demo , 2017, SOSR.

[6]  Xiaozhou Li,et al.  NetChain: Scale-Free Sub-RTT Coordination , 2018, NSDI.

[7]  Didier Colle,et al.  Network service chaining with optimized network function embedding supporting service decompositions , 2015, Comput. Networks.

[8]  Matthew Roughan,et al.  The Internet Topology Zoo , 2011, IEEE Journal on Selected Areas in Communications.

[9]  Nate Foster,et al.  NetCache: Balancing Key-Value Stores with Fast In-Network Caching , 2017, SOSP.

[10]  Panos Kalnis,et al.  In-Network Computation is a Dumb Idea Whose Time Has Come , 2017, HotNets.

[11]  Giacomo Verticale,et al.  Impact of Processing-Resource Sharing on the Placement of Chained Virtual Network Functions , 2017, IEEE Transactions on Cloud Computing.

[12]  George Varghese,et al.  P4: programming protocol-independent packet processors , 2013, CCRV.

[13]  Daniele Moro,et al.  Towards traffic classification offloading to stateful SDN data planes , 2017, 2017 IEEE Conference on Network Softwarization (NetSoft).

[14]  Minlan Yu,et al.  SilkRoad: Making Stateful Layer-4 Load Balancing Fast and Cheap Using Switching ASICs , 2017, SIGCOMM.

[15]  Clarence Filsfils,et al.  SRv6 Network Programming , 2020 .