@@ -661,6 +661,126 @@ The :doc:`Physical RAN </onramp/gnb>` section of this Guide can be
661661helpful in debugging the end-to-end setup, even though the gNB details
662662are different.
663663
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+
664784 Guidelines for Blueprints
665785~~~~~~~~~~~~~~~~~~~~~~~~~~~~
666786
0 commit comments