updated gnbsim deployment section to run gnbsim on another VM
Change-Id: I1d687a9df50672cd51766e6d1a805bb3658ebff5
diff --git a/_static/images/Standalone_gnbsim_1_interface.jpg b/_static/images/Standalone_gnbsim_1_interface.jpg
new file mode 100644
index 0000000..e20027f
--- /dev/null
+++ b/_static/images/Standalone_gnbsim_1_interface.jpg
Binary files differ
diff --git a/deployment/deploymentgnbsim.rst b/deployment/deploymentgnbsim.rst
index fd04e8a..e5b91ae 100644
--- a/deployment/deploymentgnbsim.rst
+++ b/deployment/deploymentgnbsim.rst
@@ -38,7 +38,7 @@
:width: 700px
gNB simulator running standalone with single interface
-```````````````````````````````````````````````````````
+``````````````````````````````````````````````````````
- Install gNB Simulator on any K8s cluster
- Multus cni needs to be enabled for the K8s cluster where bess-upf runs
@@ -100,3 +100,85 @@
.. image:: ../_static/images/Separate-cluster_2_interface.jpg
:width: 700px
+
+Running gNBSim Standalone Application in or out of a Docker
+```````````````````````````````````````````````````````````
+.. image:: ../_static/images/Standalone_gnbsim_1_interface.jpg
+ :width: 1000px
+
+Note that ``DATA-IFACE`` is ens1f0, this interface to be used for both control and data traffic
+
+We need two VMs, in this example we call one is SD-Core VM, other one is Simulator VM
+ * SD-Core VM: to Deploy AIAB
+ * Simulator VM: to Run gnbsim process in or out of Docker
+
+SD-Core VM Preparation:
+
+- To Expose External IP and Port of amf service, update sd-core-5g-values.yaml ::
+
+ amf:
+ # use externalIP if you need to access your AMF from remote setup and you don't
+ # want setup NodePort Service Type
+ ngapp:
+ externalIp: <DATA_IFACE_IP>
+ nodePort: 38412
+- Deploy 5g core with options DATA_IFACE=ens1f0 and ENABLE_GNBSIM=false, sample command::
+
+ $ ENABLE_GNBSIM=false DATA_IFACE=ens1f0 CHARTS=release-2.0 make 5g-core
+- Make sure that ``DATA_IFACE`` connected with Simulator VM
+
+Simulator VM Preparation
+
+- Single interface is used for user plane traffic towards UPF
+- Single interface is used to send traffic towards control plane (i.e. AMF).
+- Checkout gnbsim code using the following command::
+
+ $ git clone https://github.com/omec-project/gnbsim.git
+- Install 'go' if you want to run with local executable ::
+
+ $ wget https://go.dev/dl/go1.19.linux-amd64.tar.gz
+ $ sudo tar -xvf go1.19.linux-amd64.tar.gz
+ $ mv go /usr/local
+ $ export PATH=$PATH:/usr/local/go/bin
+- To Compile the code locally, you can use below commands::
+
+ $ ``go build`` or ``make docker-build``
+- Add following route in routing table for sending traffic over ``DATA_IFACE`` interface ::
+
+ $ ip route add 192.168.252.3 via <DATA-IFACE-IP-IN-SD-CORE-VM>
+- Just to Make sure the data connectivity, ping UPF IP from ``DATA_IFACE``::
+
+ $ ping 192.168.252.3 -I <DATA_IFACE>
+- configure correct n2 and n3 addresses in config/gnbsim.yaml ::
+
+ configuration:
+ singleInterface: false #default value
+ execInParallel: false #run all profiles in parallel
+ gnbs: # pool of gNodeBs
+ gnb1:
+ n2IpAddr: <DATA-IFACE-IP>># gNB N2 interface IP address used to connect to AMF
+ n2Port: 9487 # gNB N2 Port used to connect to AMF
+ n3IpAddr: <DATA-IFACE-IP> # gNB N3 interface IP address used to connect to UPF. when singleInterface mode is false
+ n3Port: 2152 # gNB N3 Port used to connect to UPF
+ name: gnb1 # gNB name that uniquely identify a gNB within application
+- configure AMF address or FQDN appropriately in gnbsim.yaml ::
+
+ configuration:
+ singleInterface: false #default value
+ execInParallel: false #run all profiles in parallel
+ gnbs: # pool of gNodeBs
+ gnb1:
+ defaultAmf:
+ hostName: # Host name of AMF
+ ipAddr: <AMF-SERVICE-EXTERNAL-IP> ># AMF Service external IP address in SD-Core VM
+ port: 38412 # AMF port
+- Run gnbsim application using the following command::
+
+ $ ./gnbsim -cfg config/gnbsim.yaml
+ (or)
+- Install Docker and run gnbsim inside a Docker with Docker hub Image or locally created Image ::
+
+ $ docker run --privileged -it -v ~/gnbsim/config:/gnbsim/config --net=host <Docker-Image> bash
+ $ ./gnbsim -cfg config/gnbsim.yaml
+
+Note: gnbsim docker images found at https://hub.docker.com/r/omecproject/5gc-gnbsim/tags