NetRep: Automatic Repair for Network Programs
Lei Shi, Yuepeng Wang, Rajeev Alur, Boon Thau Loo

TL;DR
NetRep is an automated tool that repairs network programs by localizing faults through symbolic reasoning and synthesizing patches to pass all unit tests, simplifying complex data structures and reusing analysis modules.
Contribution
This paper introduces NetRep, a novel automated repair approach specifically designed for network programs, combining symbolic reasoning with domain-specific abstractions.
Findings
NetRep successfully repaired network programs in 10 real-world benchmarks.
The tool demonstrated high effectiveness and efficiency in fault localization and patch synthesis.
NetRep outperforms existing methods in repairing complex network code.
Abstract
Debugging imperative network programs is a challenging task for developers because understanding various network modules and complicated data structures is typically time-consuming. To address the challenge, this paper presents an automated technique for repairing network programs from unit tests. Specifically, given as input a faulty network program and a set of unit tests, our approach localizes the fault through symbolic reasoning, and synthesizes a patch such that the repaired program can pass all unit tests. It applies domain-specific abstraction to simplify network data structures and utilizes modular analysis to facilitate function summary reuse for symbolic analysis. We implement the proposed techniques in a tool called NetRep and evaluate it on 10 benchmarks adapted from real-world software-defined networking controllers. The evaluation results demonstrate the effectiveness and…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware System Performance and Reliability · Software Testing and Debugging Techniques · Software Engineering Research
