What is Ixia-c ?
A modern, powerful and API-driven traffic generator designed to cater to the needs of hyper-scalers, network hardware vendors and hobbyists alike.
Please ensure that following prerequisites are met by the setup:
- At least 2 x86_64 CPU cores and 7GB RAM, preferably running Ubuntu 22.04 LTS OS
- Python 3.8+ (and pip) or Go 1.19+
- Docker Engine (Community Edition)
1. Deploy Ixia-c
# clone this repository git clone --recurse-submodules https://github.com/open-traffic-generator/Ixia-c.git && cd Ixia-c # create a veth pair and deploy Ixia-c containers where one traffic-engine is bound # to each interface in the pair, and controller is configured to figure out how to # talk to those traffic-engine containers cd conformance && ./do.sh topo new dp
# change dir to conformance if you haven't already cd conformance # setup python virtual environment and install dependencies ./do.sh prepytest # run standalone snappi test that configures and sends UDP traffic # upon successful run, flow metrics shall be printed on console ./do.sh pytest examples/test_quickstart.py # optionally, go equivalent of the test can be run like so ./do.sh gotest examples/quickstart_test.go
3. Optionally, run test using curl
We can also pass equivalent JSON configuration directly to controller, just by using curl. The description of each node in the configuration is detailed in self-updating online documentation.
# push traffic configuration curl -skL https://localhost:8443/config -H "Content-Type: application/json" -d @conformance/examples/quickstart_config.json # start transmitting configured flows curl -skL https://localhost:8443/control/state -H "Content-Type: application/json" -d @conformance/examples/quickstart_control.json # fetch flow metrics curl -skL https://localhost:8443/monitor/metrics -H "Content-Type: application/json" -d @conformance/examples/quickstart_metrics.json