🚧 Beta Notice Ella Core and Ella Core tester are currently in beta. If you encounter any issues, please report them here.
Ella Core Tester is a tool for testing Ella Core's functionality, reliability, and performance. It acts as a 5G radio (gNodeB) and User Equipment (UE) to simulate real-world 3GPP-compliant interactions between the radio/UE and Ella Core.
Install dependencies:
sudo apt install libpcap-devBuild the project:
go build cmd/core-tester/main.goRun all tests:
./main test \
--ella-core-api-address="http://127.0.0.1:5002" \
--ella-core-api-token="ellacore_RiUPGOgfaLI2_smqVyiHoR8V5vf3TyDUFKAhS" \
--ella-core-n2-address="192.168.40.6:38412" \
--gnb-n2-address="192.168.40.6" \
--gnb-n3-address="127.0.0.1"Example output:
PASSED gnb/sctp (1ms)
PASSED gnb/ngap/setup_response (1ms)
PASSED gnb/ngap/reset (1ms)
PASSED ue/registration_reject/unknown_ue (262ms)
PASSED ue/registration/periodic/signalling (1.078s)
PASSED ue/deregistration (695ms)
PASSED ue/service_request/data (875ms)
PASSED gnb/ngap/setup_failure/unknown_plmn (1ms)
PASSED ue/registration_success (659ms)
PASSED ue/authentication/wrong_key (225ms)
PASSED ue/registration/incorrect_guti (430ms)
PASSED ue/context/release (678ms)To add a new test, follow these steps:
- Create a new .go file in the
internal/tests/tests/gnb/orinternal/tests/tests/ue/directory depending on the type of test. - Define a new struct that implements the
engine.Testinterface. - Implement the
Meta()method to provide metadata about the test. - Implement the
Run()method to define the test logic. - Register the test in the
tests/register.gofile.
Note: Use the existing tests as references for how to structure your test.
Ella Core Tester provides a command-line interface (CLI) with the following commands:
test: run all the available tests against the Ella Core instance. This command is useful for testing Ella Core's functionality. You can optionally specify an output file to write the test results in JSON format. This command will modify the state of Ella Core by creating and deleting subscribers and sessions. Do not use this command in a production environment.register: register a subscriber in Ella Core and create a GTP tunnel. This command is useful to validate connectivity with the private network. The subscriber needs to already be created in Ella Core. This procedure will not try to create and delete resources in Ella Core.simulate: simulate multiple UEs connected to Ella Core. This command provisions subscribers, connects a gNB, registers all UEs with GTP tunnels, and generates periodic traffic. The simulation runs indefinitely until interrupted, then gracefully cleans up all resources.help: display help information about Ella Core Tester or a specific command.
Ella Core tester could not have been possible without the following open-source projects:
