Skip to content

Commit 0f5a587

Browse files
authored
Merge pull request #51 from gab-arrobo/n3iwf-blueprint
Add documentation for N3IWF blueprint
2 parents 95dee24 + 26af16a commit 0f5a587

File tree

2 files changed

+103
-2
lines changed

2 files changed

+103
-2
lines changed

dict.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ IPMI
3131
IPv
3232
IaC
3333
IaaC
34+
Interworking
3435
IoT
3536
Istio
3637
Jenkins
@@ -178,10 +179,12 @@ imei
178179
incrementing
179180
inotify
180181
instantiation
182+
interworking
181183
iommu
182184
ip
183185
isn't
184186
iteratively
187+
iwf
185188
jitter
186189
jjb
187190
json
@@ -210,6 +213,7 @@ misconfiguration
210213
mixedGroup
211214
mme
212215
mongodb
216+
n3iwf
213217
nRT
214218
nVME
215219
nameserver

onramp/blueprints.rst

Lines changed: 99 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -733,8 +733,8 @@ srsRAN 5G
733733
~~~~~~~~~~~~~~~~~~~~
734734

735735
Aether can be configured to work with the open source gNB from srsRAN.
736-
The blueprint runs in simulation mode. (Support for USRP radio is
737-
currently work-in-progress.)
736+
The blueprint supports the deployment of srsRAN in simulation mode, along
737+
with USRP radios or in 7.2 split (DPDK mode) to connect to radio units (RUs).
738738

739739
The following assumes familiarity with the srsRAN 5G stack, but it is
740740
**not** necessary to separately install the srsRAN stack. OnRamp
@@ -849,6 +849,103 @@ To deploy the srsRAN blueprint in simulation mode, run the following:
849849
$ make srsran-gnb-install
850850
$ make srsran-uesim-start
851851
852+
Non-3GPP Interworking Function
853+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
854+
855+
Aether can be configured to work with the open source Non-3GPP Interworking
856+
Function (n3IWF) to allow internet connectivity to non-3GPP devices through
857+
the 5G core network.
858+
859+
The following assumes familiarity with the N3IWF stack, but it is
860+
**not** necessary to separately install the N3IWF NF. OnRamp
861+
installs both the Aether Core and N3IWF, plus the networking needed
862+
to interconnect the two.
863+
864+
The blueprint includes the following:
865+
866+
* Global vars file ``vars/main-n3iwf.yml`` gives the overall blueprint
867+
specification.
868+
869+
* Inventory file ``hosts.ini`` uses label ``[n3iwf_nodes]`` to denote
870+
the server(s) that host the N3IWF. The n3iwf blueprint installs the
871+
N3IWF on one server, with the 5G Core running on a separate server.
872+
873+
* New make targets, ``n3iwf-install`` and ``n3iwf-uninstall``, to
874+
be executed along with the standard SD-Core installation (see below).
875+
876+
* A new submodule ``deps/n3iwf`` (corresponding to repo ``aether-n3iwf``)
877+
defines the Ansible Roles and Playbooks required to deploy the N3IWF.
878+
879+
To use/deploy a N3IWF instance, first copy the vars file to ``main.yml``:
880+
881+
.. code-block::
882+
883+
$ cd vars
884+
$ cp main-n3iwf.yml main.yml
885+
886+
You will see the main difference is the addition of the ``n3iwf``
887+
section:
888+
889+
.. code-block::
890+
891+
n3iwf:
892+
docker:
893+
image: omecproject/5gc-n3iwf:rel-1.0.0
894+
network:
895+
name: host
896+
servers:
897+
0:
898+
conf_file: deps/n3iwf/roles/n3iwf/templates/n3iwf-default.yaml
899+
n3iwf_ip: "172.20.0.2"
900+
n2_ip: "172.20.0.2"
901+
n3_ip: "172.20.0.2"
902+
nwu_ip: "192.168.200.1/24"
903+
904+
905+
Note that instead of downloading and compiling the latest N3IWF
906+
software, this blueprint pulls in the published image corresponding
907+
to variable ``docker.container.image``. If you plan to modify the N3IWF
908+
software, you will need to change these values accordingly. See the
909+
:doc:`Development Support </onramp/devel>` section for guidance.
910+
911+
The ``network`` block of the ``n3iwf`` section is meant to use the host's
912+
network so the N3IWF can connect to the SD Core's user and control planes.
913+
914+
Note that the blueprint supports the deployment of multiple containerized
915+
N3IWF instances and each instance is indicated as an index in the ``servers``
916+
section.
917+
918+
The path names associated with variables ``conf_file`` is n3iwf-specific
919+
configuration file that includes parameters such as PLMN, TAC, etc.
920+
921+
The ``core`` section of ``vars/main.yml`` is similar to that used in
922+
other blueprints, with two variable settings of note. First,
923+
set ``ran_subnet`` to proper ran subnet as per your setup.
924+
925+
Second, variable ``values_file`` is set to
926+
``"deps/5gc/roles/core/templates/sdcore-5g-values.yaml"`` by default,
927+
meaning simulated (N3IW)UEs use the same PLMN and IMSI range as gNBsim.
928+
When deploying with physical UEs, it is necessary to replace that
929+
values file with one that matches the SIM cards you plan to use. One
930+
option is to reuse the values file also used by the :doc:`Physical RAN
931+
</onramp/gnb>` blueprint, meaning you would set the variable as:
932+
933+
.. code-block::
934+
935+
values_file: "deps/5gc/roles/core/templates/radio-5g-values.yaml"
936+
937+
That file should be edited, as necessary, to match your configuration.
938+
939+
To deploy the N3IWF blueprint, run the following:
940+
941+
.. code-block::
942+
943+
$ make k8s-install
944+
$ make 5gc-install
945+
$ make n3iwf-install
946+
947+
Note that you need a UE that supports non-3GPP interworking.
948+
852949
Override Default N3 Subnet
853950
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
854951

0 commit comments

Comments
 (0)