Productive Development of Scalable Network Functions with NFork
Lei Yan (1), Yueyang Pan (1), Diyu Zhou (1), Sanidhya Kashyap (1),, George Candea (1) ((1) EPFL)

TL;DR
NFork is a system that simplifies the development of scalable, correct network functions by abstracting concurrency, using transactional memory and data structures, and providing tools for performance analysis and optimization.
Contribution
NFork introduces a novel approach to concurrent NF development by enabling sequential programming and transparent parallelization, improving scalability and correctness.
Findings
NFork achieves scalability comparable to Cisco VPP.
The profiler effectively identifies bottlenecks in NF performance.
Recipes provided help developers optimize NF scalability.
Abstract
Despite decades of research, developing correct and scalable concurrent programs is still challenging. Network functions (NFs) are not an exception. This paper presents NFork, a system that helps NF domain experts to productively develop concurrent NFs by abstracting away concurrency from developers. The key scheme behind NFork's design is to exploit NF characteristics to overcome the limitations of prior work on concurrency programming. Developers write NFs as sequential programs, and during runtime, NFork performs transparent parallelization by processing packets in different cores. Exploiting NF characteristics, NFork leverages transactional memory and develops efficient concurrent data structures to achieve scalability and guarantee the absence of concurrency bugs. Since NFork manages concurrency, it further provides (i) a profiler that reveals the root causes of scalability…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsInterconnection Networks and Systems · Distributed systems and fault tolerance · Software-Defined Networks and 5G
