diff --git a/docs/guide/Static-IP/images/ue1_010203.png b/docs/guide/Static-IP/images/ue1_010203.png
new file mode 100644
index 00000000..fe06f8f5
Binary files /dev/null and b/docs/guide/Static-IP/images/ue1_010203.png differ
diff --git a/docs/guide/Static-IP/images/ue1_010203_static_ip.png b/docs/guide/Static-IP/images/ue1_010203_static_ip.png
new file mode 100644
index 00000000..87af4b1f
Binary files /dev/null and b/docs/guide/Static-IP/images/ue1_010203_static_ip.png differ
diff --git a/docs/guide/Static-IP/images/ue1_010203_static_ip_verify.png b/docs/guide/Static-IP/images/ue1_010203_static_ip_verify.png
new file mode 100644
index 00000000..a2a38ace
Binary files /dev/null and b/docs/guide/Static-IP/images/ue1_010203_static_ip_verify.png differ
diff --git a/docs/guide/Static-IP/images/ue1_112233_static_ip.png b/docs/guide/Static-IP/images/ue1_112233_static_ip.png
new file mode 100644
index 00000000..4978adef
Binary files /dev/null and b/docs/guide/Static-IP/images/ue1_112233_static_ip.png differ
diff --git a/docs/guide/Static-IP/images/ue1_112233_static_ip_verify_1_failed.png b/docs/guide/Static-IP/images/ue1_112233_static_ip_verify_1_failed.png
new file mode 100644
index 00000000..fb5fd73b
Binary files /dev/null and b/docs/guide/Static-IP/images/ue1_112233_static_ip_verify_1_failed.png differ
diff --git a/docs/guide/Static-IP/images/ue1_112233_static_ip_verify_2.png b/docs/guide/Static-IP/images/ue1_112233_static_ip_verify_2.png
new file mode 100644
index 00000000..37eb302a
Binary files /dev/null and b/docs/guide/Static-IP/images/ue1_112233_static_ip_verify_2.png differ
diff --git a/docs/guide/Static-IP/images/ue1_ueransim.png b/docs/guide/Static-IP/images/ue1_ueransim.png
new file mode 100644
index 00000000..07296bcf
Binary files /dev/null and b/docs/guide/Static-IP/images/ue1_ueransim.png differ
diff --git a/docs/guide/Static-IP/images/ue2_010203_static_ip_verify_collision.png b/docs/guide/Static-IP/images/ue2_010203_static_ip_verify_collision.png
new file mode 100644
index 00000000..4f658ea0
Binary files /dev/null and b/docs/guide/Static-IP/images/ue2_010203_static_ip_verify_collision.png differ
diff --git a/docs/guide/Static-IP/images/ue2_ueransim.png b/docs/guide/Static-IP/images/ue2_ueransim.png
new file mode 100644
index 00000000..6d98ee1e
Binary files /dev/null and b/docs/guide/Static-IP/images/ue2_ueransim.png differ
diff --git a/docs/guide/Static-IP/set-static-ip.md b/docs/guide/Static-IP/set-static-ip.md
new file mode 100644
index 00000000..bcfbdb5e
--- /dev/null
+++ b/docs/guide/Static-IP/set-static-ip.md
@@ -0,0 +1,141 @@
+# Set Static IP for UE
+
+In this demo, we will practice:
+
+- Static IP Pool settings
+- Set Static IP address for UE in webconsole
+- Verify the IP address settings
+
+
+
+## 1. Static IP pool settings
+
+We first have to know the static IP pool for specific DNN.
+
+- In `smfcfg.yaml`, the **userplaneInformation** is what we need now:
+ - The following files remove some settings; please refer to the sample configuration file.
+ - We set two slices with one DNN each for this demo:
+ - 01010203
+ - internet
+ - pools: 10.60.0.0/16
+ - staticPools: **10.60.100.0/24**
+ - 01112233
+ - internet
+ - pools: 10.61.0.0/16
+ - staticPools: **10.61.100.0/24**
+
+ ```yaml
+ configuration:
+ userplaneInformation: # list of userplane information
+ upNodes: # information of user-plane node (AN or UPF)
+ UPF: # the name of the node
+ type: UPF # the type of the node (AN or UPF)
+ sNssaiUpfInfos: # S-NSSAI information list for this UPF
+ - sNssai: # S-NSSAI(Single Network Slice Selection Assistance Information)
+ sst: 1 # Slice/Service Type (uinteger, range: 0~255)
+ sd: 010203 # Slice Differentiator(3 bytes hex string, range: 000000~FFFFFF)
+ dnnUpfInfoList: # DNN information list for this S-NSSAI
+ - dnn: internet
+ pools:
+ - cidr: 10.60.0.0/16
+ staticPools:
+ - cidr: 10.60.100.0/24
+ - sNssai:
+ sst: 1
+ sd: 112233
+ dnnUpfInfoList:
+ - dnn: internet
+ pools:
+ - cidr: 10.61.0.0/16
+ staticPools:
+ - cidr: 10.61.100.0/24
+ ```
+
+
+
+## 2. Create Subscribers with Static-IP
+
+In this step, we would go through how to set static IP addresses for subscribers and verify the settings.
+
+- You could also refer to this for how to create subscribers.](./../Webconsole/Create-Subscriber-via-webconsole.md)
+- We would create two subscribers:
+ - *imsi-208930000000001*
+ - *imsi-208930000000002*
+ - Both have slices *010203* and *112233,* but have different IP settings.
+
+### imsi-208930000000001
+
+- **010203**
+
+ - A Static IPv4 Address toggle under the slices' DNN section would be displayed.
+
+ ![ue1_010203](./images/ue1_010203.png)
+
+ - Turn it one, and set the IPv4 address you want to use for this UE of this DNN.
+
+ - We set **10.60.100.163**
+
+ ![ue1_010203_static_ip](./images/ue1_010203_static_ip.png)
+
+ - Click Verify
+
+ - If the setting is OK, the webconsole will show **"OK"** in an alert box.
+
+ ![ue1_010203_static_ip_verify](./images/ue1_010203_static_ip_verify.png)
+
+
+- **112233**
+
+ - Set the IPv4 address you want for this UE of this DNN.
+
+ - We set **10.60.100.150**
+ - Note that **10.60.100.150** is not in *10.61.100.0/24* (The Static-IP pool for this DNN)
+
+ ![ue1_112233_static_ip](./images/ue1_112233_static_ip.png)
+
+ - Click Verify
+
+ - Since the IP address is not in the Static-IP pool for this DNN, it would pop up **"No"** with the reason.
+
+ ![ue1_112233_static_ip_verify_1_failed](./images/ue1_112233_static_ip_verify_1_failed.png)
+
+ - Correct the IP and Verify again: **10.61.100.150**
+
+ ![ue1_112233_static_ip_verify_2](./images/ue1_112233_static_ip_verify_2.png)
+
+
+
+
+### imsi-208930000000002
+
+- **010203**
+ - Set **10.60.100.163** for this DNN and click Verify.
+ - Note that **10.60.100.163** was set by the other UE
+
+ ![ue2_010203_static_ip_verify_collision](./images/ue2_010203_static_ip_verify_collision.png)
+ - Change to **10.60.100.165**
+
+
+- **112233**
+
+ - Keep the Static IPv4 Address toggle off, as Dynamic IPv4 address for this DNN.
+
+
+
+## Test with UERANSIM
+
+- You can refer to [this](./../5-install-ueransim.md) for instructions on how to use UERANSIM.
+
+### imsi-208930000000001
+
+![ue1_ueransim](./images/ue1_ueransim.png)
+
+- This UE gets **10.60.100.163** for slice 010203, which is what we set before
+- This UE gets **10.61.100.165** for slice 112233, which is what we set before
+
+### imsi-208930000000002
+
+![ue2_ueransim](./images/ue2_ueransim.png)
+
+- This UE gets **10.60.100.165** for slice 010203, which is what we set before
+- This UE gets **10.61.0.1** for slice 112233, the IP address in pools.
diff --git a/docs/guide/index.md b/docs/guide/index.md
index 7a223d28..fa33b55c 100644
--- a/docs/guide/index.md
+++ b/docs/guide/index.md
@@ -40,7 +40,6 @@ For people who are not familiar with virtual machines and Linux installation, he
- [Installing a UE/RAN Simulator](./5-install-ueransim.md)
- [Installing a N3IWUE](./n3iwue-installation.md)
- [Enable OAuth2 on SBI](./OAuth2/oauth2_enable.md)
-- [Charging](./Charging/setting.md)
- [free5GC Simple Apps](./6-simple-app.md)
- All of tutorial videos are available at our Youtube channel:
- [English](https://www.youtube.com/watch?v=R-9vH_6VJ2Q&list=PLeDUIabcS2_rQd3yVJrBAYb-MbcqNgjC9)
@@ -52,6 +51,8 @@ For people who are not familiar with virtual machines and Linux installation, he
- [Basic](./Configuration.md)
- [SMF](./SMF-Config.md)
- [Webconsole](./Webconsole/Create-Subscriber-via-webconsole.md)
+- [Charging](./Charging/setting.md)
+- [Set Static IP for UE](./Static-IP/set-static-ip.md)
- [Select UPF based on S-NSSAI](https://github.com/s5uishida/free5gc_ueransim_snssai_upf_sample_config)
- [Select nearby UPF according to the connected gNodeB](https://github.com/s5uishida/free5gc_ueransim_nearby_upf_sample_config)
- [ULCL](https://github.com/s5uishida/free5gc_ueransim_ulcl_sample_config)