VOL-2292: Create application for scale testing of BAL

- Base framework created and is functional
- Able to provision ATT techprofile with scheduler, queue and eapol
  flow creation.
- Extensible framework provided to add various operator workflows
- README has details about how to build, run, configure and extend
  the framework.

Change-Id: I71774959281881278c14b48bee7f9adc0b81ec68
906 files changed
tree: 799ef2992ce8006d62422dc6b3b6bb2139f652bb
  1. .gitignore
  2. Makefile
  3. README.md
  4. VERSION
  5. compose/
  6. config/
  7. core/
  8. docker/
  9. go.mod
  10. go.sum
  11. main.go
  12. tech-profiles/
  13. vendor/
README.md

OpenOLT Scale Tester

This is used for scale testing of OpenOLT Agent + BAL (or other underlying platform)

Design

The proposed design is here https://docs.google.com/document/d/1hQxbA8jvG1BEHeeLkM5L3sYrvgJUX7z2Tk7j1sPdd1s

How to build

make build

How to run

Make sure openolt-agent and dev_mgmt_daemon are running. Then run the below command from openolt-scale-tester folder.

DOCKER_HOST_IP=<your-host-ip-here> OPENOLT_AGENT_IP_ADDRESS=<olt-ip-address-here> TAG=<docker-tag-here> docker-compose -f compose/openolt-scale-tester.yml up -d

How to add new workflows

Lets say your workflow name is XYZ, and the techprofile IDs needed by your workflow is 64 (there could be more than one techprofiles too). Create XYZ-64.json file with your techprofile in tech_profiles folder. Edit the compose/openolt-scale-tester.yml file to reflect your workflow name, i.e., XYZ for parameter --workflow_name.

Create xyz_workflow.go (see sample att_workflow.go) which complies to WorkFlow interface defined in workflow_manager.go file and complete the implementation.

More than one techprofiles for your workflow

If there are more than one techprofiles needed by your workflow, then you need to create as many techprofiles with appropriate name as described above. Edit the compose/openolt-scale-tester.yml file, parameter --tp_ids with comma separated techprofile IDs.

Configuration

Below parameters are currently configurable from compose/openolt-scale-tester.yml file.

openolt_agent_ip_address [default: 10.90.0.114]
openolt_agent_port [default: 9191]
openolt_agent_nni_intf_id [default: 0]
num_of_onu [default: 128]
subscribers_per_onu [default: 1]
workflow_name [default: ATT]
time_interval_between_subs [default: 5]
kv_store_host[default: 192.168.1.11]
kv_store_port [default: 2379]
tp_ids [ default: 64]