From Model to Implementation: a Network Algorithm Programming Language
Jian Wang,Jie An,Mingshuai Chen,Naijun Zhan,Lulin Wang,Miaomiao Zhang,Ting Gan
DOI: https://doi.org/10.1007/s11432-019-2644-8
2020-01-01
Science China Information Sciences
Abstract:Software-defined networking(SDN) is a revolutionary technology that facilitates network management and enables programmatically efficient network configuration, thereby improving network performance and flexibility. However, as the application programming interfaces(APIs) of SDN are low-level or functionality-restricted, SDN programmers cannot easily keep pace with the ever-changing devices, topologies, and demands of SDN. By deriving motivation from industry practice, we define a novel network algorithm programming language(NAPL) that enhances the SDN framework with a rapid programming flow from topology-based network models to C++ implementations, thus bridging the gap between the limited capability of existing SDN APIs and the reality of practical network management. In contrast to several state-of-the-art languages, NAPL provides a range of critical high-level network programming features:(1) topology-based network modeling and visualization;(2) fast abstraction and expansion of network devices and constraints;(3) a declarative paradigm for the fast design of forwarding policies;(4) a built-in library for complex algorithm implementation;(5) full compatibility with C++ programming; and(6) userfriendly debugging support when compiling NAPL into highly readable C++ codes. The expressiveness and performance of NAPL are demonstrated in various industrial scenarios originating from practical network management.