@@ -480,6 +480,126 @@ required extensions. It has been written to do nothing unless variable
480
480
target.
481
481
482
482
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
+
483
603
Guidelines for Blueprints
484
604
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
485
605
0 commit comments