Batfish is a network configuration analysis tool developed jointly by researchers at Intentionet, Inc.; University of California, Los Angeles; University of Southern California; and Microsoft Research. Though its individual modules have various applications, its primary purpose is to detect bugs in network configurations.

The Batfish pipeline consists of 4 stages:
1. Control plane generator: parses vendor configuration files into a unified format
2. Data plane generator: computes the data plane corresponding to the input configurations
3. Safety Analyzer: checks specified safety properties and returns counterexamples if they exist
4. Provenance Tracker: provides helpful information about the nature and source of discovered counterexamples

For more details, please check out the Publications and Talks pages.

Managed Service
Batfish is now provided as a managed service, via: Intentionet, Inc.
For a professional analysis of your network, please send an email to: info@intentionet.com

Batfish can be expensive in terms of computation and memory usage.
Development of batfish benefits from the use of the Java profiler 'JProfiler'.