SDCORE-671: Adding gNB Simulator documentation
Change-Id: Ib65984c6efc2e4ce17d3f7814ee6b7084e05edb7
diff --git a/developer/gnbsim.rst b/developer/gnbsim.rst
index 4c32737..951275a 100644
--- a/developer/gnbsim.rst
+++ b/developer/gnbsim.rst
@@ -1,2 +1,89 @@
-Using gNB Simulator
-===================
+gNB Simulator
+=============
+
+Description
+-----------
+The gNB Sim tool simulates gNodeB and UE by generating and processing NAS and
+NGAP messages for the configured UEs and call flows. The tool currently supports
+simulation profiles for the following procedures,
+
+* Registration
+* UE initiated PDU Session Establishment
+* UE Initiated De-registration.
+
+It is also capable to generate and send user data packets (ICMP echo request)
+and process down-link user data (ICMP echo response) over the established data
+plane path (N3 Tunnel).
+
+Configure gNB Simulator
+-----------------------
+* The config file for GNBSIM can be found at *<repo dir>/config/gnbsim.yaml*
+
+ *Note: The configuration has following major fields (Read the comments in the config file for more details)*
+
+ * **gnbs**: List of gNB's to be simulated. Each item in the list holds configuration specific to a gNB.
+ * **profiles**: List of test/simulation profiles. Each item in the list holds configuration specific to a profile.
+
+* Enable or disable a specific profile using the **enable** field.
+
+ *Note: Currently following profiles are supported*
+
+ * **register**: Registration procedure
+ * **pdusessest** (Default): Registration + UE initiated PDU Session Establishment + User Data packets
+ * **deregister**: Registration + UE initiated PDU Session Establishment + User Data packets + Deregister
+
+Build gNB Simulator
+-------------------
+* To modify gNB Sim within a container run
+
+ .. code-block:: bash
+
+ $ kubectl exec -it gnbsim-0 -n omec bash
+
+ Make required changes and run
+
+ .. code-block:: bash
+
+ $ go build
+
+* To modify gNB Sim and build a new docker image
+
+ .. code-block:: bash
+
+ $ cd <repo dir>
+ $ make docker-build
+
+ Use newly created image in the AIAB cluster run,
+
+ .. code-block:: bash
+
+ $ cd <aiab repo dir>
+ $ make reset-5g-test
+
+ Modify the override file (ransim-values.yaml) to add the new image name
+
+ .. code-block:: bash
+
+ $ make 5gc
+
+Run gNB Sim
+-----------
+
+ Enter into the gNB Sim pod by running
+
+ .. code-block:: bash
+
+ $ kubectl exec -it gnbsim-0 -n omec bash
+
+ After entering the pod run,
+
+ .. code-block:: bash
+
+ $ ./gnbsim
+
+ *Note: By default, the gNB Sim reads the configuration from /free5gc/config/gnb.conf file. To provide a different configuration file,
+ use the below command*
+
+ .. code-block:: bash
+
+ $ ./gnbsim --cfg config/gnbsim.yaml
diff --git a/dict.txt b/dict.txt
index 60e5592..dae4039 100644
--- a/dict.txt
+++ b/dict.txt
@@ -74,3 +74,5 @@
De
testpod
Minikube
+Deregister
+ransim