@@ -661,6 +661,126 @@ The :doc:`Physical RAN </onramp/gnb>` section of this Guide can be
661
661
helpful in debugging the end-to-end setup, even though the gNB details
662
662
are different.
663
663
664
+ srsRAN 5G
665
+ ~~~~~~~~~~~~~~~~~~~~
666
+
667
+ Aether can be configured to work with the open source gNB from srsRAN.
668
+ The blueprint runs in simulation mode (currently work in progress to
669
+ support USRP radio)
670
+
671
+ The following assumes familiarity with the srsRAN 5G stack, but it is
672
+ **not ** necessary to separately install the srsRAN stack. OnRamp installs
673
+ both the Aether Core and the srsRAN, plus the networking needed to
674
+ interconnect the two.
675
+
676
+ .. _reading_srsran :
677
+ .. admonition :: Further Reading
678
+
679
+ `srsRAN
680
+ <https://docs.srsran.com/projects/project/en/latest/#> `__.
681
+
682
+ The blueprint includes the following:
683
+
684
+ * Global vars file ``vars/main-srsran.yml `` gives the overall blueprint
685
+ specification.
686
+
687
+ * Inventory file ``hosts.ini `` uses label ``[srsran_nodes] `` to denote
688
+ the server(s) that host the gNB and (when configured in simulation
689
+ mode) the UE. srsRAN deployment installs the gNB and UE on one server,
690
+ with the 5G Core running on a separate server. (Although not necessary
691
+ in principle, the current playbooks require the gNB and simulated UE be
692
+ located on the same server.)
693
+
694
+ * New make targets, ``srsran-gnb-install `` and ``srsran-gnb-uninstall ``, to
695
+ be executed along with the standard SD-Core installation (see below).
696
+ When running a simulated UE, targets ``srsran-uesim-start `` and
697
+ ``srsran-uesim-stop `` are also available.
698
+
699
+ * A new submodule ``deps/srsran `` (corresponding to repo ``aether-srsran ``)
700
+ defines the Ansible Roles and Playbooks required to deploy the srsRAN
701
+ gNB.
702
+
703
+ * The Jenkins pipeline ``srsran.groovy `` validates the srsRAN 5G
704
+ blueprint. The pipeline runs srsRAN in simulation mode.
705
+
706
+ To use an srsRAN gNB, first copy the vars file to ``main.yml ``:
707
+
708
+ .. code-block ::
709
+
710
+ $ cd vars
711
+ $ cp main-srsran.yml main.yml
712
+
713
+ You will see the main difference is the addition of the ``srsran ``
714
+ section:
715
+
716
+ .. code-block ::
717
+
718
+ srsran:
719
+ docker:
720
+ container:
721
+ gnb_image: aetherproject/srsran-gnb:rel-0.0.1
722
+ ue_image: aetherproject/srsran-ue:rel-0.0.1
723
+ network:
724
+ data_iface: ens18
725
+ name: host
726
+ subnet: "172.20.0.0/16"
727
+ bridge:
728
+ name: rfsim5g-public
729
+ simulation: true
730
+ gnb:
731
+ conf_file: deps/srsran/roles/gNB/templates/gnb_zmq.conf
732
+ ip: "172.20.0.2"
733
+ ue:
734
+ conf_file: deps/srsran/roles/uEsimulator/templates/ue_zmq.conf
735
+
736
+ Variable ``simulation `` is set to ``true `` by default, causing OnRamp
737
+ to deploy the simulated UE. When set to ``false ``, the simulated UE
738
+ is not deployed.
739
+
740
+ Note that instead of downloading and compiling the latest srsRAN
741
+ software, this blueprint pulls in the published images for both the
742
+ gNB and UE, corresponding to variables
743
+ ``docker.container.gnb_image `` and ``docker.container.ue_image ``,
744
+ respectively. If you plan to modify the srsRAN software, you will need to
745
+ change these values accordingly. See the :doc: `Development Support
746
+ </onramp/devel>` section for guidance.
747
+
748
+ The ``network `` block of the ``srsran `` section configures the necessary
749
+ tunnels so the gNB can connect to the Core's user and control planes.
750
+
751
+ The path names associated with variables ``gnb.conf_file `` and
752
+ ``ue.conf_file `` are srsRAN-specific configuration files. The two
753
+ given by default are for simulation mode.
754
+
755
+ The ``core `` section of ``vars/main.yml `` is similar to that used in
756
+ other blueprints, with two variable settings of note. First,
757
+ set ``ran_subnet `` to proper ran subnet as per your setup.
758
+ As a general rule, ``core.ran_subnet `` is set to the empty(``"" ``)
759
+ string whenever a physical gNB is on the same L2 network as the Core.
760
+
761
+ Second, variable ``values_file `` is set to
762
+ ``"deps/5gc/roles/core/templates/sdcore-5g-values.yaml" `` by default,
763
+ meaning simulated UEs uses the same PLMN and IMSI range as gNBsim.
764
+ When deploying with physical UEs, it is necessary to replace that
765
+ values file with one that matches the SIM cards you plan to use. One
766
+ option is to reuse the values file also used by the :doc: `Physical RAN
767
+ </onramp/gnb>` blueprint, meaning you would set the variable as:
768
+
769
+ .. code-block ::
770
+
771
+ values_file: "deps/5gc/roles/core/templates/radio-5g-values.yaml"
772
+
773
+ That file should be edited, as necessary, to match your configuration.
774
+
775
+ To deploy the srsRAN blueprint in simulation mode, run the following:
776
+
777
+ .. code-block ::
778
+
779
+ $ make k8s-install
780
+ $ make 5gc-install
781
+ $ make srsran-gnb-install
782
+ $ make srsran-uesim-start
783
+
664
784
Guidelines for Blueprints
665
785
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
666
786
0 commit comments