Batfish vs TRex
Batfish
batfish.orgTRex
trex-tgn.cisco.comSide by side
| Figure | Batfish | TRex |
|---|---|---|
| Price from | — | Free |
| Free plan | — | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | — | Yes |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 0 | 1 |
| Spec score · Network Testing Software | 8.0 (#12) | 7.9 (#15) |
| Deployment | The project provides an all-in-one Docker container that includes Batfish and example Jupyter notebooks. | TRex is a Linux application; the documentation also describes running it in Docker or a VirtualBox virtual machine for experimentation. |
| Purpose | Batfish analyzes network device configurations to find policy violations and validate network behavior. | TRex is an open source traffic generator for benchmarking and testing network devices with realistic traffic. |
| Support | The maker directs users with questions or feature requests to its Slack community or GitHub repository. | The documentation lists a TRex community forum and Cisco DevNet community as support resources. |
Plans
In their own words
Batfish
Batfish is an open-source tool for analyzing network device configurations and validating network behavior. It works from configuration files, so core analysis does not require direct access to network devices. Teams can inspect deployed configurations and check planned changes before deployment. Checks cover undefined references, MTU and AAA settings, template compliance, sensitive-service reachability and expected traffic paths. Batfish can test whether end-to-end reachability survives any single-link or single-device failure, compare current and planned reachability, assess ACL or firewall changes and evaluate functional equivalence across vendors. Pybatfish provides a Python 3 SDK, and example Jupyter notebooks are available. An all-in-one Docker container bundles Batfish and notebooks. It runs on operating systems supporting Docker. Documented support includes Arista, AWS, Azure, Cisco, Juniper, Palo Alto Networks and SONiC, while Aruba, Dell Force10 and Foundry have limited support.
TRex
TRex is an open source traffic generator for benchmarking platforms with realistic network traffic. It produces Layer 3–7 traffic in stateless, stateful, and advanced stateful modes. Stateless mode supports multiple streams, packet-field changes, and per-stream or per-group statistics, latency, and jitter. Advanced stateful mode emulates Layer 7 traffic over scalable TCP and UDP flows. Emulation includes ARP, IPv6, ND, MLD, IGMP, ICMP, DOT1X, DHCPv4, DHCPv6, and DNS. TRex offers Python automation APIs and a console interface; stateless functions can also be used through JSON-RPC. The manual describes it as a Linux application using DPDK and Linux kernel modules, intended for COTS x86 servers. The site says one server can scale up to 200 Gb/sec. It can run in a virtual machine or Docker for low-performance, low-footprint use, but virtual switches can limit throughput and virtual-machine latency results are not accurate. TRex is free, with hardware and NIC requirements. The GUI monitoring application TRexViewer is supported only on Windows.