Tierless Programming and Reasoning for Software-Defined Networks.

NSDI'14: Proceedings of the 11th USENIX Conference on Networked Systems Design and Implementation(2014)

引用 189|浏览125
暂无评分
摘要
We present Flowlog, a tierless language for programming SDN controllers. In contrast to languages with different abstractions for each program tier--the control-plane, data-plane, and controller state--Flowlog provides a unified abstraction for all three tiers. Flowlog is reminiscent of both SQL and rule-based languages such as Cisco IOS and JunOS; unlike these network configuration languages, Flowlog supports programming with mutable state. We intentionally limit Flowlog's expressivity to enable built-in verification and proactive compilation despite the integration of controller state. To compensate for its limited expressive power, Flowlog enables the reuse of external libraries through callouts. Flowlog proactively compiles essentially all forwarding behavior to switch tables. For rules that maintain controller state or generate fresh packets, the compiler instructs switches to send the minimum amount of necessary traffic to the controller. Given that Flowlog programs can be stateful, this process is non-trivial. We have successfully used Flowlog to implement real network applications. We also compile Flowlog programs to Alloy, a popular verification tool. With this we have verified several properties, including program-correctness properties that are topology-independent, and have found bugs in our own programs.
更多
查看译文
关键词
controller state,Flowlog program,Flowlog proactively,mutable state,programming SDN controller,built-in verification,network configuration language,popular verification tool,real network application,Cisco IOS,Tierless programming,software-defined network
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要