Skip to content
/ batfish Public
forked from batfish/batfish

Batfish is a network configuration analysis tool developed jointly by researchers at 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.

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
LICENSE.3RD-PARTIES
Notifications You must be signed in to change notification settings

jiacao/batfish

 
 

Repository files navigation

Except where otherwise noted, everything in this repository is provided under the terms of the Apache 2.0 License.

Homepage: http://www.batfish.org
Source:   http://github.com/arifogel/batfish

**************************************************
Instructions for building and running Batfish
**************************************************
Cygwin: Read README.CYGWIN before continuing
OSX: Read README.OSX before continuing


Common Prerequisites:
   ant
   Java 8 JDK
   python
   z3

Optional:
   JProfiler - a Java profiler - located at http://www.ej-technologies.com/products/jprofiler/overview.html

Steps:
NOTE: After any step involving modifications to .bashrc or equivalent, make sure to reload your shell or take other action to load the changes.

1. Install z3 - use master branch
git clone https://github.com/Z3Prover/z3
cd z3
python scripts/mk_make.py --java
cd build
make -j<number-of-jobs>
make install # as administrator (sudo or whatever)

2. Clone batfish
git clone https://github.com/arifogel/batfish.git

3. prepare your environment for batfish by adding the following to your .bashrc or equivalent
    . <batfish-root>/tools/batfish_functions.sh
Sourcing batfish_functions.sh will give your shell access to batfish functions. You may prefer to source it manually if you do not want to clutter up your environment in every interactive bash session.

4. compile batfish
   batfish_build_all
Note that 'batfish_build_all' runs 'ant' in each batfish project directory with corresponding args.
You can clean all generated output with:
   batfish_build_all distclean

5. Tests
From the root of the batfish repository, run:
allinone -cmdfile tests/commands

6. Demo
From the root of the batfish repository, run:
allinone -cmdfile demo/commands

7. Now what?
To get an interactive batfish prompt to play around with, run:
   allinone -runmode interactive
This will start batfish service locally in a self-contained fashion
You can read read README.client for example commands to use

About

Batfish is a network configuration analysis tool developed jointly by researchers at 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.

Resources

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
LICENSE.3RD-PARTIES

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 52.2%
  • JavaScript 36.0%
  • ANTLR 7.2%
  • Prolog 3.2%
  • CSS 0.5%
  • HTML 0.5%
  • Other 0.4%