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