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 rooted in an Ansible
variable file (e.g., vars/main-blueprint.yml
). Most blueprints
also include a Jenkins pipeline (e.g., blueprint.groovy
) that
illustrates how the blueprint is deployed and validated.
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. The groovy files can be found in the aether-jenkins repo.
Name |
Vars File |
Jenkins Pipeline |
Description |
---|---|---|---|
main-quickstart.yml |
quickstart.groovy |
Minimal configuration running in a single server or VM. |
|
main-gnbsim.yml |
gnbsim.groovy |
Scalable 5G Control Plane workload from gNBsim directed at 5G Core. |
|
main-gNB.yml |
N/A |
Physical 5G small cell radio connected to 5G Core; demonstrated with MOSO CANOPY 5G indoor small cell. |
|
main-upf.yml |
upf.groovy |
Instantiate multiple UPFs and bind them to distinct Slices. |
|
main-sdran.yml |
sdran.groovy |
SD-RAN (with RANSIM traffic) connected to 5G Core. |
|
main-ueransim.yml |
ueransim.groovy |
UERANSIM (with |
|
main-eNB.yml |
N/A |
Physical 4G small cell radio connected to 4G Core; demonstrated with Sercomm indoor small cell. |
|
main-sriov.yml |
N/A |
5G Core with SR-IOV and DPDK optimizations enabled for User Plane. |
|
main-oai.yml |
oai.groovy |
OAI software radio connected to 5G Core. |
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 |
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 |
Socket mode for core.data_iface; set to dpdk to enable DPDK and SR-IOV optimizations. |
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. |
*.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. |
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.server |
deps/gnbsim/config/gnbsim-default.yaml/ |
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.gnb.conf_file |
deps/oai/roles/gNb/templates/gnb.sa.band78.fr1.106PRB.usrpb210.conf |
oai.ue.conf_file |
deps/oai/roles/uEsimulator/templates/ue.conf |
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.
Host Group |
Description |
---|---|
[master_nodes] |
Servers hosting Kubernetes Controller. |
[worker_nodes] |
Worker servers in Kubernetes Cluster. |
[gnbsim_nodes] |
Servers hosting gNBsim container(s). |
[ueransim_nodes] |
Servers hosting UERANSIM process. |
[oai_nodes] |
Servers hosting OAI gNB (and optionally UE) container(s). |
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 QuickStart 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-resetcore |
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.)
Target |
Description |
---|---|
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. |
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
;
they do not typically need to be modified to deploy a blueprint.
Not shown below, subnet 10.76.28.0/24
is used as an exemplar
for the local network throughout the OnRamp documentation.
IP Subnet |
Ansible Variable |
Description |
---|---|---|
172.20.0.0/16 |
|
Assigned to container-based gNBs connecting to the Core. Other
gNB implementations connect to the Core over the subnet
assigned to the server's physical interface (as denoted by
|
192.168.250.0/24 |
|
Assigned to core bridge that connects UPF(s) to the Internet. |
192.168.252.0/24 |
|
Assigned to access bridge that connects UPF(s) to the RAN. |
172.250.0.0/16 |
|
Assigned (by the Core) to UEs connecting to Aether. |
Note that when multiple UPFs are deployed—in addition to
core.default_upf
—each is assigned its own ip.core
,
ip.access
, and ue_ip_pool
subnets.