Skip to content

Commit f0af026

Browse files
authored
Merge pull request #14 from opennetworkinglab/maintenance
OAI blueprint
2 parents c41e8a3 + eeec1e6 commit f0af026

File tree

2 files changed

+136
-0
lines changed

2 files changed

+136
-0
lines changed

dict.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ GPP
2222
GTP
2323
GbE
2424
GiB
25+
GigE
2526
GitOps
2627
Github
2728
Grafana
@@ -49,6 +50,7 @@ Moto
4950
Multipass
5051
NAV
5152
Netbox
53+
OAI
5254
ONF
5355
ONL
5456
OPc

onramp/blueprints.rst

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,6 +480,140 @@ 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`` uses label ``[oai_gnb_nodes]`` to
503+
denote the server(s) that host the gNB and label ``[oai_ue_nodes]``
504+
to denote the server(s) that host the UE. (The latter is necessary
505+
only when running in simulation mode.) The expected configuration is
506+
to run both the gNB and UE on the same server as Kubernetes (where
507+
the 5G Core runs). Another possible configuration is to co-locate
508+
the gNB and UE on one server, with the 5G Core running on a separate
509+
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 configure the USRP and
556+
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 so the gNB can connect to the Core's user and control planes.
567+
Variable ``network.data_iface`` needs to be modified in the same way
568+
as in the ``core`` and ``gnbsim`` sections of ``vars/main.yml``, as
569+
described throughout this Guide.
570+
571+
The path names associated with variables ``oai.gnb.conf_file`` and
572+
``oai.ue.conf_file`` are OAI-specific configuration files. The two
573+
given by default are for simulation mode. The template directory for
574+
the ``gNb`` role also includes a configuration file for when the USRP
575+
X310 hardware is to be deployed; edit variable ``oai.gnb.conf_file``
576+
to point to that file instead. If you plan to use some other OAI
577+
configuration file, note that the following two variables in the ``AMF
578+
parameters`` section need to be modified to 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 simulation mode, run the following:
587+
588+
.. code-block::
589+
590+
$ make k8s-install
591+
$ make 5gc-install
592+
$ make oai-gnb-install
593+
$ make oai-uesim-start
594+
595+
To deploy the OAI blueprint with a physical gNB and UE, first
596+
configure the USRP hardware as described in the `USRP Hardware Manual
597+
<https://files.ettus.com/manual/page_usrp_x3x0.html>`__. Of
598+
particular note, you need to select whether the device is to connect
599+
to the Aether Core using its 1-GigE or 10-GigE interface, and make
600+
sure the OAI configuration file (corresponding to ``oai.conf_file``)
601+
sets the ``sd_addrs`` variable to match the interface you select. You
602+
also need to make sure the PLMN-related values in the files specified
603+
by ``core.values_file`` and ``oai.conf_file`` (along with the SIM
604+
cards you burn) are consistent. Once ready, run the following Make
605+
targets:
606+
607+
.. code-block::
608+
609+
$ make k8s-install
610+
$ make 5gc-install
611+
$ make oai-gnb-install
612+
613+
The :doc:`Physical RAN </onramp/gnb>` section of this Guide can be
614+
helpful in debugging the end-to-end setup, even though the gNB details
615+
are different.
616+
483617
Guidelines for Blueprints
484618
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
485619

0 commit comments

Comments
 (0)