Skip to content

Commit 67cfba9

Browse files
committed
OAI blueprint
Signed-off-by: Larry Peterson <[email protected]>
1 parent 939210a commit 67cfba9

File tree

2 files changed

+121
-0
lines changed

2 files changed

+121
-0
lines changed

dict.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ Moto
4949
Multipass
5050
NAV
5151
Netbox
52+
OAI
5253
ONF
5354
ONL
5455
OPc

onramp/blueprints.rst

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,126 @@ required extensions. It has been written to do nothing unless variable
480480
target.
481481

482482

483+
OAI gNB
484+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
485+
486+
Aether can be configured to work with the open source gNB from OAI.
487+
The blueprint runs in either simulation mode or with physical UEs
488+
connecting to a software-defined radio. The following assumes
489+
familiarity with the OAI 5G RAN stack.
490+
491+
.. _reading_oai:
492+
.. admonition:: Further Reading
493+
494+
`Open Air Interface 5G
495+
<https://gitlab.eurecom.fr/oai/openairinterface5g/>`__.
496+
497+
The blueprint includes the following:
498+
499+
* Global vars file ``vars/main-oai.yml`` gives the overall blueprint
500+
specification.
501+
502+
* Inventory file ``hosts.ini`` is similar to that used throughout this
503+
Guide, except this blueprint uses label ``[oai_gnb_nodes]`` to
504+
denote the server(s) that host the gNB and label ``[oai_ue_nodes]``
505+
to denote the server(s) that host the UE. (The latter is necessary
506+
only when running in simulation mode.) The gNB and UE can can run on
507+
the same server as Kubernetes (where the 5G Core runs), although a
508+
common configuration is to co-locate the Core and gNB on one server,
509+
with the simulated UE running on a separate server.
510+
511+
* New make targets, ``oai-gNb-install`` and ``oai-gNb-uninstall``, to
512+
be executed along with the standard SD-Core installation (see below).
513+
When running a simulated UE, targets ``oai-uEsim-start`` and
514+
``oai-uEsim-stop`` are also available.
515+
516+
* A new submodule ``deps/oai`` (corresponding to repo ``aether-oai``)
517+
defines the Ansible Roles and Playbooks required to deploy the OAI
518+
gNB.
519+
520+
* An Integration test running in simulation mode is still pending. The
521+
blueprint has been tested with USRP X310, but other models should
522+
also work.
523+
524+
To use the OAI gNB first copy the vars file to ``main.yml``:
525+
526+
.. code-block::
527+
528+
$ cd vars
529+
$ cp main-oai.yml main.yml
530+
531+
You will see the main difference is the addition of the ``oai``
532+
section:
533+
534+
.. code-block::
535+
536+
oai:
537+
docker:
538+
container:
539+
gNbimage: oaisoftwarealliance/oai-gnb:develop
540+
uEimage: oaisoftwarealliance/oai-nr-ue:develop
541+
network:
542+
data_iface: ens18
543+
name: public_net
544+
subnet: "172.20.0.0/16"
545+
bridge:
546+
name: rfsim5g-public
547+
simulation: true
548+
gnb:
549+
conf_file: deps/aether-oai/roles/gNb/templates/gnb.sa.band78.fr1.106PRB.usrpb210.conf
550+
ue:
551+
conf_file: deps/aether-oai/roles/uEsimulator/templates/ue.conf
552+
553+
Variable ``simulation`` is set to ``true`` by default, causing OnRamp
554+
to deploy the simulated UE. When set to ``false``, the simulated UE
555+
is not deployed and it is instead necessary to initialize the USRP device
556+
and configure a physical UE.
557+
558+
Note that instead of downloading and compiling the latest OAI
559+
software, this blueprint pulls in the published images for both the
560+
gNB and UE, corresponding to variables ``container.gNbimage`` and
561+
``container.uEimage``, respectively. If you plan to modify the OAI
562+
software, you will need to change these values accordingly. See the
563+
:doc:`Development Support </onramp/devel>` section for guidance.
564+
565+
The ``network`` block of the ``oai`` section configures the necessary
566+
tunnels. Variable ``network.data_iface`` needs to be modified in the
567+
same way as in the ``core`` and ``gnbsim`` sections, as described
568+
throughout this Guide.
569+
570+
The path names associated with variables ``oai.gnb.conf_file`` and
571+
``oai.ue.conf_file`` are OAI-specific configuration files. The two
572+
given by default are for simulation mode. The template directory for
573+
the ``gNb`` role also includes a configuration file for the USRP X310
574+
when that hardware is to be deployed; edit variable
575+
``oai.gnb.conf_file`` to point to that file instead. If you plan to
576+
use some other OAI configuration file, note that the following two
577+
variables in the ``AMF parameters`` section need to be modified to
578+
work with the Aether Core:
579+
580+
.. code-block::
581+
582+
amf_ip_address = ({ ipv4 = "{{ core.amf.ip }}"; });
583+
584+
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.20.0.2/24";
585+
586+
To deploy the OAI blueprint (in either mode), run the following:
587+
588+
.. code-block::
589+
590+
$ make k8s-install
591+
$ make 5gc-install
592+
$ make oai-gNb-install
593+
594+
If in simulation mode, next run ``make oai-uEsim-start``; if not, you
595+
are ready to bring up the physical gNB and UE. In the latter case, you
596+
need to make sure the PLMN-related values in the files specified by
597+
``core.values_file`` and ``oai.conf_file`` (along with the SIM cards
598+
you burn) are consistent. The :doc:`Physical RAN </onramp/gnb>`
599+
section can be helpful in debugging the setup, even though the gNB
600+
details are different.
601+
602+
483603
Guidelines for Blueprints
484604
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
485605

0 commit comments

Comments
 (0)