Skip to content

Commit fa8e866

Browse files
Add srsRAN blueprint
Signed-off-by: Marikkannu, Suresh <[email protected]>
1 parent e93d79d commit fa8e866

File tree

1 file changed

+120
-0
lines changed

1 file changed

+120
-0
lines changed

onramp/blueprints.rst

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -661,6 +661,126 @@ The :doc:`Physical RAN </onramp/gnb>` section of this Guide can be
661661
helpful in debugging the end-to-end setup, even though the gNB details
662662
are 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

Comments
 (0)