Controller
The BNG Blaster controller provides a REST API to start and stop multiple test instances. It exposes the BNG Blaster JSON RPC API as REST API and provides endpoints to download logs and reports.
https://github.com/rtbrick/bngblaster-controller
Installation
The BNG Blaster controller should run on any modern linux distribution but is primary tested on Ubuntu 18.04 LTS and Ubuntu 20.04 LTS.
Download and install debian package: https://github.com/rtbrick/bngblaster-controller/releases
API
OpenAPI: https://rtbrick.github.io/bngblaster-controller/
Create Test Instance
PUT /api/v1/bngblasters/<instance-name>
This API endpoint creates a test instance if not already created. The body of this request is stored as bngblaster configuration (config.json).
Each test instance creates a directory in /var/bngblaster/<instance-name>. This directory contains the following files:
config.json: bngblaster configuration
run.pid: bngblaster process ID (if running)
run.json: bngblaster arguments
run_report.json: bngblaster report (if enabled)
run.pcap: bngblaster traffic capture (if enabled)
run.sock: bngblaster control socket
run.stderr: bngblaster standard error
run.stdout`: bngblaster standard output
Start Test
POST /api/v1/bngblasters/<instance-name>/_start
The start API endpoint will start the bngblaster with the argument options defined in the body.
Status
GET /api/v1/bngblasters/<instance-name>
The status API endpoint returns the status of the test.
Command
POST /api/v1/bngblasters/<instance-name>/_command
The JSON body of this API call will be passed to the bngblaster instance control socket (/var/bngbnlaster/<instance-name>/run.sock`). The result will be passed back to the client.
Stop Test
POST /api/v1/bngblasters/<instance-name>/_stop
The stop API endpoint will send the SIGINT signal to the corresponding BNG blaster instance (kill -INT <pid>).
Delete Test Instance
DELETE /api/v1/bngblasters/<instance-name>
This API endpoint deletes the test instance directory. The corresponding test run is forcefully terminated (kill) if running.