In the conventional approach to developing a software-defined network system, the management, control, and data planes are all separately developed. Manually written code connects the management plane's configuration to the control plane, and the control plane generates the data planes' configurations as small program fragments that scatter across the codebase. Scalability and correctness become increasing challenges as such a system develops and grows. In response, we propose a vision, called Nerpa, in which all three planes are programmed in a unified way. In Nerpa's design, a transactional database stores the management plane state. The control plane is implemented in a specialized query language that, when compiled, will automatically execute in an incremental fashion, which improves scalability. Finally, the data plane is programmed in P4. To aid correctness, all three parts are type-checked together, and automated tools generate most code for data movement between planes. We have published a prototype implementation using an open-source license. We believe that full-stack SDN can build more robust and maintainable networked systems.


November, 2022





ACM Workshop on Hot Topics in Networks (HotNets)