@@ -480,6 +480,140 @@ 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 `` 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
+
483
617
Guidelines for Blueprints
484
618
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
485
619
0 commit comments