Network troubleshooting today relies largely on ticket systems, which log, record, replay, and analyze live events, while overlooking recent advances in SDNs, programmable networks, and verified data centers, all of which have produced a rich body of models and control software. We argue instead that this modern network software—including abstract models and system code—provides a vantage point for troubleshooting, enabled by a debugger that, when things go bump in the night, allows someone who neither wrote the software nor is familiar with the DSL or verification tools to pinpoint the exact culprit line—a stepping stone for systematically diagnosing the underlying network. As a first step toward this vision, we present a declarative debugging schema for modern network software amid its rapid evolution: the user only needs to answer “yes/no” questions about the software’s intended behavior, leaving procedural inspection and bug localization entirely to the debugger; meanwhile, new language features—arisen with emerging applications—are seamlessly supported through a novel use of partial evaluation, which automatically incorporates these features into the declarative debugging process.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Declarative Debugging for Modern Networks

  • Anduo Wang,
  • Matthew Caesar

摘要

Network troubleshooting today relies largely on ticket systems, which log, record, replay, and analyze live events, while overlooking recent advances in SDNs, programmable networks, and verified data centers, all of which have produced a rich body of models and control software. We argue instead that this modern network software—including abstract models and system code—provides a vantage point for troubleshooting, enabled by a debugger that, when things go bump in the night, allows someone who neither wrote the software nor is familiar with the DSL or verification tools to pinpoint the exact culprit line—a stepping stone for systematically diagnosing the underlying network. As a first step toward this vision, we present a declarative debugging schema for modern network software amid its rapid evolution: the user only needs to answer “yes/no” questions about the software’s intended behavior, leaving procedural inspection and bug localization entirely to the debugger; meanwhile, new language features—arisen with emerging applications—are seamlessly supported through a novel use of partial evaluation, which automatically incorporates these features into the declarative debugging process.