Want to get your hands dirty? Head over to GitHub.
Got questions or feature requests? Join us on Slack.

Batfish is a network configuration analysis tool that can find bugs and guarantee the correctness of (planned or current) network configurations. It enables network engineers to rapidly and safely evolve the network, without fear of outages or security breaches.

Batfish was originally developed jointly by researchers at Microsoft Research, the University of California, Los Angeles, and the University of Southern California. Many others have since contributed to it.

Batfish is currently maintained by and also offered as a supported service by Intentionet.

Primary publications that describe the technology

A General Approach to Network Configuration Analysis

Ari Fogel, Stanley Fung, Luis Pedrosa, Meg Walraed-Sullivan, Ramesh Govindan, Ratul Mahajan, Todd Millstein

USENIX Symposium on Networked Systems Design and Implementation (NSDI) 2015

ddNF: An efficient data structure for header spaces

Nikolaj Bjørner and Garvit Juniwal and Ratul Mahajan and Sanjit A. Seshia and George Varghese

Haifa Verification Conference (HVC) 2016

A General Approach to Network Configuration Verification

Ryan Beckett, Aarti Gupta, Ratul Mahajan, David Walker

ACM SIGCOMM 2017

Control Plane Compression

Ryan Beckett, Aarti Gupta, Ratul Mahajan, David Walker

ACM SIGCOMM 2018

Other publications that build on Batfish

Fast Control Plane Analysis Using an Abstract Representation

Aaron Gember-Jacobson, Raajay Viswanathan, Aditya Akella, Ratul Mahajan

ACM SIGCOMM 2016

Efficient Network Reachability Analysis Using a Succinct Control Plane Representation

Seyed K. Fayaz, Tushar Sharma, Ari Fogel, Ratul Mahajan, Todd Millstein, Vyas Sekar, George Varghese

USENIX Symposium on Operating Systems Design and Implementation (OSDI) 2016

Automatically Repairing Network Control Planes Using an Abstract Representation

Aaron Gember-Jacobson and Aditya Akella and Ratul Mahajan and Hongqiang Harry Liu

ACM SOSP 2017