Quick Reference

This guide provides a quick reference for all the blueprints OnRamp defines for Aether. It assumes a general familiarity with OnRamp, and a specific understanding of how OnRamp uses blueprints to configure target deployments of Aether.

Blueprint Specification

The specification for every Aether blueprint is anchored in an Ansible variable file (e.g., vars/main-<blueprint>.yml).

The blueprint names in the first column of the following table link the relevant OnRamp documentation. The vars files can be found in the aether-onramp repo.

Name

Vars File

Description

Quick Start

main-quickstart.yml

Minimal configuration running in a single server or VM.

Emulated RAN

main-gnbsim.yml

Scalable 5G Control Plane workload from gNBsim directed at 5G Core.

Physical gNB

main-gNB.yml

Physical 5G small cell radio connected to 5G Core; demonstrated with MOSO CANOPY 5G indoor small cell.

Multiple UPFs

main-upf.yml

Instantiate multiple UPFs and bind them to distinct Slices.

SD-RAN (RIC)

main-sdran.yml

SD-RAN (with RANSIM traffic) connected to 5G Core.

UERANSIM

main-ueransim.yml

UERANSIM (with iperf traffic) connected to 5G Core.

Physical eNB

main-eNB.yml

Physical 4G small cell radio connected to 4G Core; demonstrated with Sercomm indoor small cell.

SR-IOV/DPDK

main-sriov.yml

5G Core with core.upf.mode set to dpdk, enabling SR-IOV and DPDK optimizations for the user plane.

OAI 5G RAN

main-oai.yml

OAI software radio connected to 5G Core.

srsRAN 5G

main-srsran.yml

srsRAN software radio connected to 5G Core.

OCUDU

main-ocudu.yml

OCUDU software radio connected to 5G Core.

N3IWF

main-n3iwf.yml

N3IWF connected to 5G Core to provide internet access to non-3GPP devices.

Ansible Variables

The Ansible vars/main-<blueprint>.yml file associated with each blueprint defines the high-level parameters used to configure Aether. The following identifies the key variables users are likely to modify; the list is not comprehensive.

Variable

Default

Description

core.ran_subnet

172.20.0.0/16

Overlay subnet connecting Core to RAN when gNBs run in a container; set to empty string (“”) when gNBs are directly connected via core.data_iface.

core.standalone

true

Core to run standalone, initialized from values file; set to false when Core is to be initialized by ROC.

core.data_iface

ens18

Network interface used by UPF; same as gnbsim.data_iface when co-located on a single server.

core.amf.ip

“10.76.28.113”

IP address of AMF; edit to match IP address assigned to core.data_iface.

core.upf.mode

af_packet

UPF datapath mode; set to dpdk to enable the integrated SR-IOV/DPDK rendering in the core and additional-UPF templates.

core.upf.multihop_gnb

false

Override default N3 interface; set to true when external gNB is multiple hops away.

gnbsim.data_iface

ens18

Network interface used by gNBsim; same as core.data_iface when co-located on a single server.

oai.simulation

true

Run UE in simulation mode; set to false to connect real UEs.

srsran.simulation

true

Run UE in simulation mode; set to false to connect real UEs.

ocudu.simulation

true

Run UE in simulation mode; set to false to deploy OCUDU without the simulated UE.

*.helm.local_charts

false

Loads Helm Charts from public repo; set to true to utilize local charts, with *.helm.charts_ref set to local path name.

proxy.enabled

false

Enable HTTP proxy support for all deployment steps; set to true when deploying behind a corporate or institutional proxy.

proxy.http_proxy

“”

HTTP proxy URL (e.g., http://proxy.example.com:3128).

proxy.https_proxy

“”

HTTPS proxy URL (e.g., http://proxy.example.com:3128).

proxy.no_proxy

See vars/main.yml

Comma-separated list of hosts and CIDRs that bypass the proxy; the default includes localhost, private subnets, and Kubernetes internal domains as defined in vars/main.yml.

In addition to the variables listed in the preceding table, the vars file also references other configuration files required by each component. These include values override files used by Helm, along with other ad hoc files directly processed by the component. Note that alternative config files used by other blueprints are often available in the same directory. Edit these variable settings to substitute custom config files.

Variable

Default Path Name

amp.monitor_dashboard

deps/amp/roles/monitor-load/templates/5g-monitoring/

amp.roc_models

deps/amp/roles/roc-load/templates/roc-5g-models.json

core.values_file

deps/5gc/roles/core/templates/sdcore-5g-values.yaml

gnbsim.servers

deps/gnbsim/config/gnbsim-default.yaml and similar per-container config files

k8s.rke2.config.params_file.master

deps/k8s/roles/rke2/templates/master-config.yaml

k8s.rke2.config.params_file.worker

deps/k8s/roles/rke2/templates/worker-config.yaml

oai.servers[0].gnb_conf

deps/oai/roles/gNb/templates/gnb.sa.band78.fr1.106PRB.usrpb210.conf

oai.servers[0].ue_conf

deps/oai/roles/uEsimulator/templates/ue.conf

srsran.servers[0].gnb_conf

deps/srsran/roles/gNB/templates/gnb_zmq.yaml

srsran.servers[0].ue_conf

deps/srsran/roles/uEsimulator/templates/ue_zmq.conf

ocudu.servers[0].gnb_conf

gnb_zmq.yaml

ocudu.servers[0].ue_conf

ue_zmq.conf

n3iwf.servers[0].conf_file

deps/n3iwf/roles/n3iwf/templates/n3iwf-default.yaml

ueransim.servers

deps/ueransim/config/custom-gnb.yaml

deps/ueransim/config/custom-ue.yaml

Host Inventory

Each blueprint is deployed to the set of servers identified in an Ansible inventory file (hosts.ini). The following identifies the host groups that OnRamp currently supports.

In the default single-node inventory, the controller host is labeled node1 even when it resolves to 127.0.0.1 for local execution. The GitHub Actions workflows in the aether-onramp repository under .github/workflows do not use that exact aliasing scheme: the single-node workflows generate hosts.ini through shared helper scripts, using localhost and ansible_connection=local.

Host Group

Description

[master_nodes]

Servers hosting Kubernetes Controller.

[worker_nodes]

Worker servers in Kubernetes Cluster.

[gnbsim_nodes]

Servers hosting gNBsim containers.

[ueransim_nodes]

Servers hosting UERANSIM process.

[oai_nodes]

Servers hosting OAI gNB (and optionally UE) containers.

[srsran_nodes]

Servers hosting srsRAN gNB (and optionally UE) containers.

[ocudu_nodes]

Servers hosting OCUDU gNB (and optionally UE) containers.

[n3iwf_nodes]

Servers hosting N3IWF containers.

The [worker_nodes] group can be empty, but must be present. The other groups are blueprint-specific, and with the exception of [ueransim_nodes], may be the same as the [master_nodes], making it possible for the blueprint to require only a single server.

Make Targets

OnRamp executes blueprints through a set of Make Targets. The following table identifies the Aether-wide targets used by the Quick Start Blueprint.

Target

Description

aether-k8s-install

Install RKE2 and Helm.

aether-k8s-uninstall

Uninstall RKE2 Kubernetes and Helm.

aether-5gc-install

Install 5G Core workload; includes bridges for networking.

aether-5gc-uninstall

Uninstall 5G Core workload; includes bridges for networking.

aether-5gc-reset

Delete and reinstall 5G Core workload; leaves network bridges untouched.

aether-gnbsim-install

Install gNBsim containers.

aether-gnbsim-uninstall

Uninstall gNBsim containers.

aether-gnbsim-run

Run gNBsim containers; may rerun multiple times without reinstalling.

aether-amp-install

Installs and initializes both ROC and Monitoring workloads.

aether-amp-uninstall

Uninstalls both ROC and Monitoring workloads.

Other blueprints define component-specific targets, as listed in the following table. (The Aether-wide targets can also be used for all other blueprints.)

All Blueprints

roc-install

Install ROC workload.

roc-load

Load model values into ROC; assumes ROC already deployed.

roc-uninstall

Uninstall ROC workload.

monitor-install

Install Monitor workload.

monitor-load

Load dashboard panels into Monitor; assumes Monitor already deployed.

monitor-uninstall

Uninstall Monitor workload.

SD-RAN Blueprint

sdran-install

Install SD-RAN workload; assumes Core already deployed.

sdran-uninstall

Uninstall SD-RAN workload.

UERANSIM Blueprint

ueransim-install

Install UERANSIM emulated RAN; assumes Core already deployed.

ueransim-uninstall

Uninstall UERANSIM emulated RAN.

ueransim-run

Run UERANSIM UE to generate User Plane traffic for the Core.

OAI 5G RAN Blueprint

oai-gnb-install

Install container running OAI 5G RAN radio; assumes Core already deployed.

oai-gnb-uninstall

Uninstall OAI 5G RAN container.

oai-uesim-start

Start container running OAI simulated UE.

oai-uesim-stop

Stop container running OAI simulated UE.

srsRAN 5G Blueprint

srsran-gnb-install

Install container running srsRAN 5G radio; assumes Core already deployed.

srsran-gnb-uninstall

Uninstall srsRAN 5G radio container.

srsran-uesim-start

Start container running srsRAN simulated UE.

srsran-uesim-stop

Stop container running srsRAN simulated UE.

OCUDU Blueprint

ocudu-gnb-install

Install container running OCUDU gNB; assumes Core already deployed.

ocudu-gnb-uninstall

Uninstall OCUDU gNB container.

ocudu-uesim-start

Start container running the simulated srsRAN UE for OCUDU.

ocudu-uesim-stop

Stop container running the simulated srsRAN UE for OCUDU.

N3IWF Blueprint

n3iwf-install

Install N3IWF; assumes Core already deployed.

n3iwf-uninstall

Uninstall N3IWF.

Multi-UPF Blueprint

5gc-upf-install

Install additional UPF pods; assumes Core already deployed.

5gc-upf-uninstall

Uninstall additional UPF pods.

Network Subnets

OnRamp configures a set of subnets in support of a given Aether deployment. The following subnets are defined in vars/main.yml. With the exception of core.ran_subnet, these variables typically do not need to be modified for an initial deployment of a blueprint.

IP Subnet

Ansible Variable

Description

172.20.0.0/16

aether.ran_subnet

Assigned to container-based gNBs connecting to the Core via an overlay subnet. Other gNB implementations connect to the Core over the subnet assigned to the server’s physical interface (as defined by core.data_iface).

192.168.250.1/24

core.upf.core_subnet

Gateway/interface CIDR assigned to the core bridge that connects UPF(s) to the Internet.

192.168.252.1/24

core.upf.access_subnet

Gateway/interface CIDR assigned to the access bridge that connects UPF(s) to the RAN.

192.168.100.0/24

core.default_upf.ue_ip_pool

Assigned (by the Core) to UEs connecting to Aether. When multiple UPFs are deployed—in addition to core.default_upf—each is assigned its own ue_ip_pool subnet.

10.76.28.0/24

N/A

Used throughout OnRamp documentation as an exemplar for the local subnet on which Aether severs and radios are deployed. Corresponds to the network interface defined by variable core.data_iface.