An assertion language for debugging SDN applications

Ryan Beckett, X. Zou, Shuyuan Zhang, S. Malik, J. Rexford, D. Walker
{"title":"An assertion language for debugging SDN applications","authors":"Ryan Beckett, X. Zou, Shuyuan Zhang, S. Malik, J. Rexford, D. Walker","doi":"10.1145/2620728.2620743","DOIUrl":null,"url":null,"abstract":"Software Defined Networking (SDN) provides opportunities for network verification and debugging by offering centralized visibility of the data plane. This has enabled both offline and online data-plane verification. However, little work has gone into the verification of time-varying properties (e.g., dynamic access control), where verification conditions change dynamically in response to application logic, network events, and external stimulus (e.g., operator requests). This paper introduces an assertion language to support verifying and debugging SDN applications with dynamically changing verification conditions. The language allows programmers to annotate controller applications with C-style assertions about the data plane. Assertions consist of regular expressions on paths to describe path properties for classes of packets, and universal and existential quantifiers that range over programmer-defined sets of hosts, switches, or other network entities. As controller programs dynamically add and remove elements from these sets, they generate new verification conditions that the existing data plane must satisfy. This work proposes an incremental data structure together with an underlying verification engine, to avoid naively re-verifying the entire data plane as these verification conditions change. To validate our ideas, we have implemented a debugging library on top of a modified version of VeriFlow, which is easily integrated into existing controller systems with minimal changes. Using this library, we have verified correctness properties for applications on several controller platforms.","PeriodicalId":309136,"journal":{"name":"Proceedings of the third workshop on Hot topics in software defined networking","volume":"27 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2014-08-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"46","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the third workshop on Hot topics in software defined networking","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2620728.2620743","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 46

Abstract

Software Defined Networking (SDN) provides opportunities for network verification and debugging by offering centralized visibility of the data plane. This has enabled both offline and online data-plane verification. However, little work has gone into the verification of time-varying properties (e.g., dynamic access control), where verification conditions change dynamically in response to application logic, network events, and external stimulus (e.g., operator requests). This paper introduces an assertion language to support verifying and debugging SDN applications with dynamically changing verification conditions. The language allows programmers to annotate controller applications with C-style assertions about the data plane. Assertions consist of regular expressions on paths to describe path properties for classes of packets, and universal and existential quantifiers that range over programmer-defined sets of hosts, switches, or other network entities. As controller programs dynamically add and remove elements from these sets, they generate new verification conditions that the existing data plane must satisfy. This work proposes an incremental data structure together with an underlying verification engine, to avoid naively re-verifying the entire data plane as these verification conditions change. To validate our ideas, we have implemented a debugging library on top of a modified version of VeriFlow, which is easily integrated into existing controller systems with minimal changes. Using this library, we have verified correctness properties for applications on several controller platforms.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
用于调试SDN应用程序的断言语言
软件定义网络(SDN)通过提供数据平面的集中可见性,为网络验证和调试提供了机会。这使得离线和在线数据平面验证成为可能。然而,对时变属性(例如,动态访问控制)的验证工作很少,其中验证条件会随着应用程序逻辑、网络事件和外部刺激(例如,操作员请求)而动态变化。本文介绍了一种断言语言,用于支持动态变化验证条件的SDN应用程序的验证和调试。该语言允许程序员用关于数据平面的c风格断言来注释控制器应用程序。断言由路径上的正则表达式组成,用于描述数据包类的路径属性,以及通用和存在量词,这些量词涵盖程序员定义的主机、交换机或其他网络实体集。当控制器程序动态地从这些集合中添加和删除元素时,它们会生成现有数据平面必须满足的新的验证条件。这项工作提出了一个增量数据结构和一个底层验证引擎,以避免在这些验证条件发生变化时天真地重新验证整个数据平面。为了验证我们的想法,我们在修改版本的VeriFlow之上实现了一个调试库,它可以通过最小的更改轻松集成到现有的控制器系统中。使用这个库,我们已经验证了几个控制器平台上应用程序的正确性属性。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Enabling layer 2 pathlet tracing through context encoding in software-defined networking ReversePTP: a software defined networking approach to clock synchronization Flow-based load balancing in multipathed layer-2 networks using OpenFlow and multipath-TCP Fleet: defending SDNs from malicious administrators Don't call them middleboxes, call them middlepipes
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1