论文标题

FP4:P4开关的线路率Greybox绒毛测试

FP4: Line-rate Greybox Fuzz Testing for P4 Switches

论文作者

Yaseen, Nofel, Yu, Liangcheng, Stanford, Caleb, Beckett, Ryan, Liu, Vincent

论文摘要

与固定功能开关相比,可编程开关的灵活性是有代价的,因为程序员错误经常导致网络数据平面中的细微错误。 在本文中,我们介绍了FP4的设计和实现,FP4是P4开关的模糊测试框架,可实现高表现力,覆盖范围和可扩展性。 FP4通过生成半随机输入数据包并观察其在数据平面中的执行来直接测试运行开关。为了实现高覆盖范围和可扩展性,在运行时,FP4使用另一个“测试器”开关利用P4本身,该开关将每秒完全在DataPlane中生成数十亿个测试数据包。由于测试某些程序分支需要导航复杂的语义输入要求,因此FP4还通过启动测试程序将覆盖范围信息通过数据包标头传递给测试仪,还利用P4的可编程性。 我们介绍了案例研究表明,FP4可以验证安全性和状态性能,提高现有随机数据包生成基线的效率,并在一分钟内在各种示例中达到100%的覆盖范围。

Compared to fixed-function switches, the flexibility of programmable switches comes at a cost, as programmer mistakes frequently result in subtle bugs in the network data plane. In this paper, we present the design and implementation of FP4, a fuzz-testing framework for P4 switches that achieves high expressiveness, coverage, and scalability. FP4 directly tests running switches by generating semi-random input packets and observing their resulting execution in the data plane. To achieve high coverage and scalability, at runtime, FP4 leverages P4 itself with another "tester" switch that generates and mutates billions of test packets per second entirely in the dataplane. Because testing some program branches requires navigating complex semantic input requirements, FP4 additionally leverages the programmability of P4 by instrumenting the tested program to pass coverage information back to the tester through the packet header. We present case studies showing that FP4 can validate both safety and stateful properties, improves efficiency over existing random packet generation baselines, and reaches 100% coverage in under a minute on a wide range of examples.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源