[网络领域顶会追踪系列#32][SIGCOMM'22]Meissa:面向可编程数据面的可扩展网络测试
本系列为个人论文阅读笔记,大多数应该是对顶会摘要的个人菜鸟翻译,旨在让感兴趣的朋友能快速浏览、获取信息。如有错误或心得,欢迎在评论区交流指正!
Meissa: Scalable Network Testing for Programmable Data Planes
作者单位:北大、阿里巴巴
背景
确保可编程数据面的重要性很重要。测试(Testing)提供了全面的正确性检查,包含检查代码BUG和非代码BUG。
挑战
然而,可扩展性是测试生产级规模的数据面的一个核心挑战,以实现高覆盖性。
工作
本文提出了Meissa,一种针对可编程数据面的可扩展网络测试系统,有着全路径覆盖。
Meissa的核心是指定域的代码总结(code summary)技术,简化了数据面程序的控制流图,可在不牺牲覆盖的情况下进行规模测试。
代码总结将数据面程序解耦为若干pipeline,并且使用一个简洁的表示总结每个pipeline。
作者正式地证明了有代码总结的Meissa实现了100%的路径覆盖。
实验
作者使用开源和生产级规模的数据面程序来评估Meissa。
评估表明:
- Messia可以测试不被当前最新工作所支持的生产级规模的数据面程序
- 除P4代码BUG外,Messia不仅能识别已知的非代码BUG,还能检测之前不知道的非代码BUG。
作者也展示了一些Messia在生产级可编程数据面的真实用例。
原文摘要
Ensuring the correctness of programmable data planes is important. Testing offers comprehensive correctness checking, including detecting both code bugs and non-code bugs. However, scalability is a key challenge for testing production-scale data planes to achieve high coverage. This paper presents Meissa, a_scalable_network testing system for programmable data planes with_full_path coverage. The core of Meissa is a domain-specific_code summary_technique that simplifies the control flow graph of a data plane program for scalable testing without sacrificing coverage. Code summary decomposes a data plane program into individual pipelines, and summarizes each pipeline with a succinct representation. We formally prove that Meissa with code summary achieves_100% path coverage_. We use both open-source and production-scale data plane programs to evaluate Meissa. The evaluation shows that (i) Meissa is able to test production-scale data plane programs that cannot be supported by state-of-the-art efforts, and_(ii)_besides P4 code bugs, Meissa is able to not only identify known non-code bugs, but also detect previously-unknown non-code bugs. We also share in this paper several real cases tested by Meissa in a production programmable data plane.