diff --git a/doc/NR_SA_CN5G_gNB_B210_COTS_UE_Tutorial.md b/doc/NR_SA_CN5G_gNB_B210_COTS_UE_Tutorial.md
new file mode 100644
index 0000000000..1110a5bc6c
--- /dev/null
+++ b/doc/NR_SA_CN5G_gNB_B210_COTS_UE_Tutorial.md
@@ -0,0 +1,234 @@
+
+
+
+
+
+
+
+ |
+
+ OAI 5G SA tutorial
+ |
+
+
+
+**TABLE OF CONTENTS**
+
+1. [Scenario](#1-scenario)
+2. [OAI CN5G](#2-oai-cn5g)
+ 1. [OAI CN5G pre-requisites](#21-oai-cn5g-pre-requisites)
+ 2. [OAI CN5G Setup](#22-oai-cn5g-setup)
+ 3. [OAI CN5G Configuration files](#23-oai-cn5g-configuration-files)
+ 4. [SIM Card](#24-sim-card)
+3. [OAI gNB](#3-oai-gnb)
+ 1. [OAI gNB pre-requisites](#31-oai-gnb-pre-requisites)
+ 2. [Build OAI gNB](#32-build-oai-gnb)
+4. [Run OAI CN5G and OAI gNB with USRP B210](#4-run-oai-cn5g-and-oai-gnb-with-usrp-b210)
+ 1. [Run OAI CN5G](#41-run-oai-cn5g)
+ 2. [Run OAI gNB](#42-run-oai-gnb)
+5. [Testing with QUECTEL RM500Q](#5-testing-with-quectel-rm500q)
+ 1. [Setup QUECTEL](#51-setup-quectel)
+ 2. [Ping test](#52-ping-test)
+ 3. [Downlink iPerf test](#53-downlink-iperf-test)
+
+
+# 1. Scenario
+In this tutorial we describe how to configure and run a 5G end-to-end setup with OAI CN5G, OAI gNB and COTS UE.
+
+Minimum hardware requirements:
+- Laptop/Desktop/Server for OAI CN5G and OAI gNB
+ - Operating System: [Ubuntu 20.04.4 LTS](https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-desktop-amd64.iso)
+ - CPU: 8 cores x86_64 @ 3.5 GHz
+ - RAM: 32 GB
+- Laptop for UE
+ - Operating System: Microsoft Windows 10 x64
+ - CPU: 4 cores x86_64
+ - RAM: 8 GB
+ - Windows driver for Quectel MUST be equal or higher than version **2.2.4**
+- [USRP B210](https://www.ettus.com/all-products/ub210-kit/)
+- Quectel RM500Q
+ - Module, M.2 to USB adapter, antennas and SIM card
+ - Firmware version of Quectel MUST be equal or higher than **RM500QGLABR11A06M4G**
+
+
+# 2. OAI CN5G
+
+## 2.1 OAI CN5G pre-requisites
+
+```bash
+sudo apt install -y git net-tools putty
+
+sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
+curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
+sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
+sudo apt update
+sudo apt install -y docker docker-ce
+
+# Add your username to the docker group, otherwise you will have to run in sudo mode.
+sudo usermod -a -G docker $(whoami)
+reboot
+
+# https://docs.docker.com/compose/install/
+sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
+sudo chmod +x /usr/local/bin/docker-compose
+
+docker network create --driver=bridge --subnet=192.168.70.128/26 -o "com.docker.network.bridge.name"="demo-oai" demo-oai-public-net
+sudo service docker restart
+
+```
+
+## 2.2 OAI CN5G Setup
+
+```bash
+# Git oai-cn5g-fed repository
+git clone https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed.git ~/oai-cn5g-fed
+cd ~/oai-cn5g-fed
+git checkout master
+./scripts/syncComponents.sh --nrf-branch develop --amf-branch develop --smf-branch develop --spgwu-tiny-branch develop --ausf-branch develop --udm-branch develop --udr-branch develop --upf-vpp-branch develop --nssf-branch develop
+
+docker pull oaisoftwarealliance/oai-amf:develop
+docker pull oaisoftwarealliance/oai-nrf:develop
+docker pull oaisoftwarealliance/oai-smf:develop
+docker pull oaisoftwarealliance/oai-udr:develop
+docker pull oaisoftwarealliance/oai-udm:develop
+docker pull oaisoftwarealliance/oai-ausf:develop
+docker pull oaisoftwarealliance/oai-upf-vpp:develop
+docker pull oaisoftwarealliance/oai-spgwu-tiny:develop
+docker pull oaisoftwarealliance/oai-nssf:develop
+
+docker image tag oaisoftwarealliance/oai-amf:develop oai-amf:develop
+docker image tag oaisoftwarealliance/oai-nrf:develop oai-nrf:develop
+docker image tag oaisoftwarealliance/oai-smf:develop oai-smf:develop
+docker image tag oaisoftwarealliance/oai-udr:develop oai-udr:develop
+docker image tag oaisoftwarealliance/oai-udm:develop oai-udm:develop
+docker image tag oaisoftwarealliance/oai-ausf:develop oai-ausf:develop
+docker image tag oaisoftwarealliance/oai-upf-vpp:develop oai-upf-vpp:develop
+docker image tag oaisoftwarealliance/oai-spgwu-tiny:develop oai-spgwu-tiny:develop
+docker image tag oaisoftwarealliance/oai-nssf:develop oai-nssf:develop
+```
+
+## 2.3 OAI CN5G Configuration files
+Download and copy the configuration files to ~/oai-cn5g-fed/docker-compose:
+- [docker-compose-basic-nrf.yaml](tutorial_resources/docker-compose-basic-nrf.yaml)
+- [oai_db.sql](tutorial_resources/oai_db.sql)
+
+Change permissions on oai_db.sql to prevent mysql permission denied error:
+```bash
+chmod 644 ~/oai-cn5g-fed/docker-compose/oai_db.sql
+```
+
+## 2.4 SIM Card
+Program SIM Card with [Open Cells Project](https://open-cells.com/) application [uicc-v2.6](https://open-cells.com/d5138782a8739209ec5760865b1e53b0/uicc-v2.6.tgz).
+
+```bash
+sudo ./program_uicc --adm 12345678 --imsi 208990000000001 --isdn 00000001 --acc 0001 --key fec86ba6eb707ed08905757b1bb44b8f --opc C42449363BBAD02B66D16BC975D77CC1 -spn "OpenAirInterface" --authenticate
+```
+
+
+# 3. OAI gNB
+
+## 3.1 OAI gNB pre-requisites
+
+### Build UHD from source
+```bash
+sudo apt install -y libboost-all-dev libusb-1.0-0-dev doxygen python3-docutils python3-mako python3-numpy python3-requests python3-ruamel.yaml python3-setuptools cmake build-essential
+
+git clone https://github.com/EttusResearch/uhd.git ~/uhd
+cd ~/uhd
+git checkout v4.0.0.0
+cd host
+mkdir build
+cd build
+cmake ../
+make -j 4
+make test # This step is optional
+sudo make install
+sudo ldconfig
+sudo uhd_images_downloader
+```
+
+## 3.2 Build OAI gNB
+
+```bash
+# Get openairinterface5g source code
+git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git ~/openairinterface5g
+cd ~/openairinterface5g
+git checkout develop
+
+# Install dependencies in Ubuntu 20.04
+cd ~/openairinterface5g
+source oaienv
+cd cmake_targets
+./build_oai -I
+
+# Build OAI gNB
+cd ~/openairinterface5g
+source oaienv
+cd cmake_targets
+./build_oai -w USRP --nrUE --gNB --build-lib all -c
+```
+
+
+# 4. Run OAI CN5G and OAI gNB with USRP B210
+
+## 4.1 Run OAI CN5G
+
+```bash
+cd ~/oai-cn5g-fed/docker-compose
+python3 core-network.py --type start-basic --fqdn yes --scenario 1
+```
+
+## 4.2 Run OAI gNB
+
+```bash
+cd ~/openairinterface5g
+source oaienv
+cd cmake_targets/ran_build/build
+sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf --sa -E --continuous-tx
+```
+
+Make sure that during USRP initialization, it shows that USB 3 is used.
+
+# 5. Testing with Quectel RM500Q
+
+## 5.1 Setup Quectel
+With [PuTTY](https://the.earth.li/~sgtatham/putty/latest/w64/putty.exe), send the following AT commands to the module using a serial interface (ex: COM2) at 115200 bps:
+```bash
+# MUST be sent at least once everytime there is a firmware upgrade!
+AT+QMBNCFG="Select","ROW_Commercial"
+AT+QMBNCFG="AutoSel",0
+AT+CFUN=1,1
+AT+CGDCONT=1
+AT+CGDCONT=2
+AT+CGDCONT=3
+AT+CGDCONT=1,"IP","oai"
+
+# (Optional, debug only, AT commands) Activate PDP context, retrieve IP address and test with ping
+AT+CGACT=1,1
+AT+CGPADDR=1
+AT+QPING=1,"openairinterface.org"
+```
+
+## 5.2 Ping test
+- UE host
+```bash
+ping 192.168.70.135 -n 1000 -S 12.1.1.2
+```
+- CN5G host
+```bash
+docker exec -it oai-ext-dn ping 12.1.1.2
+```
+
+## 5.3 Downlink iPerf test
+- UE host
+ - Download iPerf for Microsoft Windows from [here](https://iperf.fr/download/windows/iperf-2.0.9-win64.zip).
+ - Extract to Desktop and run with Command Prompt:
+```bash
+cd C:\Users\User\Desktop\iPerf\iperf-2.0.9-win64\iperf-2.0.9-win64
+iperf -s -u -i 1 -B 12.1.1.2
+```
+
+- CN5G host
+```bash
+docker exec -it oai-ext-dn iperf -u -t 86400 -i 1 -fk -B 192.168.70.135 -b 125M -c 12.1.1.2
+```
diff --git a/doc/NR_SA_CN5G_gNB_N300_COTS_UE_Tutorial.md b/doc/NR_SA_CN5G_gNB_N300_COTS_UE_Tutorial.md
new file mode 100644
index 0000000000..ed917e09ea
--- /dev/null
+++ b/doc/NR_SA_CN5G_gNB_N300_COTS_UE_Tutorial.md
@@ -0,0 +1,251 @@
+
+
+
+
+
+
+
+ |
+
+ OAI 5G SA tutorial
+ |
+
+
+
+**TABLE OF CONTENTS**
+
+1. [Scenario](#1-scenario)
+2. [OAI CN5G](#2-oai-cn5g)
+ 1. [OAI CN5G pre-requisites](#21-oai-cn5g-pre-requisites)
+ 2. [OAI CN5G Setup](#22-oai-cn5g-setup)
+ 3. [OAI CN5G Configuration files](#23-oai-cn5g-configuration-files)
+ 4. [SIM Card](#24-sim-card)
+3. [OAI gNB](#3-oai-gnb)
+ 1. [OAI gNB pre-requisites](#31-oai-gnb-pre-requisites)
+ 2. [Build OAI gNB](#32-build-oai-gnb)
+ 3. [N300 Ethernet Tuning](#33-n300-ethernet-tuning)
+4. [Run OAI CN5G and OAI gNB with USRP N300](#4-run-oai-cn5g-and-oai-gnb-with-usrp-n300)
+ 1. [Run OAI CN5G](#41-run-oai-cn5g)
+ 2. [Run OAI gNB](#42-run-oai-gnb)
+5. [Testing with QUECTEL RM500Q](#5-testing-with-quectel-rm500q)
+ 1. [Setup QUECTEL](#51-setup-quectel)
+ 2. [Ping test](#52-ping-test)
+ 3. [Downlink iPerf test](#53-downlink-iperf-test)
+
+
+# 1. Scenario
+In this tutorial we describe how to configure and run a 5G end-to-end setup with OAI CN5G, OAI gNB and COTS UE.
+
+Minimum hardware requirements:
+- Laptop/Desktop/Server for OAI CN5G and OAI gNB
+ - Operating System: [Ubuntu 20.04.4 LTS](https://releases.ubuntu.com/20.04.4/ubuntu-20.04.4-desktop-amd64.iso)
+ - CPU: 8 cores x86_64 @ 3.5 GHz
+ - RAM: 32 GB
+- Laptop for UE
+ - Operating System: Microsoft Windows 10 x64
+ - CPU: 4 cores x86_64
+ - RAM: 8 GB
+ - Windows driver for Quectel MUST be equal or higher than version **2.2.4**
+- [USRP N300](https://www.ettus.com/all-products/USRP-N300/): Please identify the network interface(s) on which the N300 is connected.
+- Quectel RM500Q
+ - Module, M.2 to USB adapter, antennas and SIM card
+ - Firmware version of Quectel MUST be equal or higher than **RM500QGLABR11A06M4G**
+
+
+# 2. OAI CN5G
+
+## 2.1 OAI CN5G pre-requisites
+
+```bash
+sudo apt install -y git net-tools putty
+
+sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
+curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
+sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
+sudo apt update
+sudo apt install -y docker docker-ce
+
+# Add your username to the docker group, otherwise you will have to run in sudo mode.
+sudo usermod -a -G docker $(whoami)
+reboot
+
+# https://docs.docker.com/compose/install/
+sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
+sudo chmod +x /usr/local/bin/docker-compose
+
+docker network create --driver=bridge --subnet=192.168.70.128/26 -o "com.docker.network.bridge.name"="demo-oai" demo-oai-public-net
+sudo service docker restart
+
+```
+
+## 2.2 OAI CN5G Setup
+
+```bash
+# Git oai-cn5g-fed repository
+git clone https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed.git ~/oai-cn5g-fed
+cd ~/oai-cn5g-fed
+git checkout master
+./scripts/syncComponents.sh --nrf-branch develop --amf-branch develop --smf-branch develop --spgwu-tiny-branch develop --ausf-branch develop --udm-branch develop --udr-branch develop --upf-vpp-branch develop --nssf-branch develop
+
+docker pull oaisoftwarealliance/oai-amf:develop
+docker pull oaisoftwarealliance/oai-nrf:develop
+docker pull oaisoftwarealliance/oai-smf:develop
+docker pull oaisoftwarealliance/oai-udr:develop
+docker pull oaisoftwarealliance/oai-udm:develop
+docker pull oaisoftwarealliance/oai-ausf:develop
+docker pull oaisoftwarealliance/oai-upf-vpp:develop
+docker pull oaisoftwarealliance/oai-spgwu-tiny:develop
+docker pull oaisoftwarealliance/oai-nssf:develop
+
+docker image tag oaisoftwarealliance/oai-amf:develop oai-amf:develop
+docker image tag oaisoftwarealliance/oai-nrf:develop oai-nrf:develop
+docker image tag oaisoftwarealliance/oai-smf:develop oai-smf:develop
+docker image tag oaisoftwarealliance/oai-udr:develop oai-udr:develop
+docker image tag oaisoftwarealliance/oai-udm:develop oai-udm:develop
+docker image tag oaisoftwarealliance/oai-ausf:develop oai-ausf:develop
+docker image tag oaisoftwarealliance/oai-upf-vpp:develop oai-upf-vpp:develop
+docker image tag oaisoftwarealliance/oai-spgwu-tiny:develop oai-spgwu-tiny:develop
+docker image tag oaisoftwarealliance/oai-nssf:develop oai-nssf:develop
+```
+
+## 2.3 OAI CN5G Configuration files
+Download and copy the configuration files to ~/oai-cn5g-fed/docker-compose:
+- [docker-compose-basic-nrf.yaml](tutorial_resources/docker-compose-basic-nrf.yaml)
+- [oai_db.sql](tutorial_resources/oai_db.sql)
+
+Change permissions on oai_db.sql to prevent mysql permission denied error:
+```bash
+chmod 644 ~/oai-cn5g-fed/docker-compose/oai_db.sql
+```
+
+## 2.4 SIM Card
+Program SIM Card with [Open Cells Project](https://open-cells.com/) application [uicc-v2.6](https://open-cells.com/d5138782a8739209ec5760865b1e53b0/uicc-v2.6.tgz).
+
+```bash
+sudo ./program_uicc --adm 12345678 --imsi 208990000000001 --isdn 00000001 --acc 0001 --key fec86ba6eb707ed08905757b1bb44b8f --opc C42449363BBAD02B66D16BC975D77CC1 -spn "OpenAirInterface" --authenticate
+```
+
+
+# 3. OAI gNB
+
+## 3.1 OAI gNB pre-requisites
+
+### Build UHD from source
+```bash
+sudo apt install -y libboost-all-dev libusb-1.0-0-dev doxygen python3-docutils python3-mako python3-numpy python3-requests python3-ruamel.yaml python3-setuptools cmake build-essential
+
+git clone https://github.com/EttusResearch/uhd.git ~/uhd
+cd ~/uhd
+git checkout v4.0.0.0
+cd host
+mkdir build
+cd build
+cmake ../
+make -j 4
+make test # This step is optional
+sudo make install
+sudo ldconfig
+sudo uhd_images_downloader
+```
+
+## 3.2 Build OAI gNB
+
+```bash
+# Get openairinterface5g source code
+git clone https://gitlab.eurecom.fr/oai/openairinterface5g.git ~/openairinterface5g
+cd ~/openairinterface5g
+git checkout develop
+
+# Install dependencies in Ubuntu 20.04
+cd ~/openairinterface5g
+source oaienv
+cd cmake_targets
+./build_oai -I
+
+# Build OAI gNB
+cd ~/openairinterface5g
+source oaienv
+cd cmake_targets
+./build_oai -w USRP --nrUE --gNB --build-lib all -c
+```
+
+## 3.3 N300 Ethernet Tuning
+
+Please also refer to the official [USRP Host Performance Tuning Tips and Tricks](https://kb.ettus.com/USRP_Host_Performance_Tuning_Tips_and_Tricks) tuning guide.
+
+The following steps are recommended. Please change the network interface(s) as required. Also, you should have 10Gbps interface(s): if you use two cables, you should have the XG interface. Refer to the [N300 Getting Started Guide](https://kb.ettus.com/USRP_N300/N310/N320/N321_Getting_Started_Guide) for more information.
+
+* Use an MTU of 9000: how to change this depends on the network management tool. In the case of Network Manager, this can be done from the GUI.
+* Increase the kernel socket buffer (also done by the USRP driver in OAI):
+ ```
+ sysctl -w net.core.rmem_max=8388608
+ sysctl -w net.core.wmem_max=8388608
+ sysctl -w net.core.rmem_default=65536
+ sysctl -w net.core.wmem_default=65536
+ ```
+* Increase Ethernet Ring Buffers: `sudo ethtool -G rx 4096 tx 4096`
+* Disable hyper-threading in the BIOS
+* Disable KPTI Protections for Spectre/Meltdown for more performance. **This is a security risk.** Add `mitigations=off nosmt` in your grub config and update grub.
+
+# 4. Run OAI CN5G and OAI gNB with USRP N300
+
+## 4.1 Run OAI CN5G
+
+```bash
+cd ~/oai-cn5g-fed/docker-compose
+python3 core-network.py --type start-basic --fqdn yes --scenario 1
+```
+
+## 4.2 Run OAI gNB
+
+```bash
+cd ~/openairinterface5g
+source oaienv
+cd cmake_targets/ran_build/build
+sudo ./nr-softmodem -O ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.162PRB.2x2.usrpn300.conf --sa --usrp-tx-thread-config 1
+```
+
+
+# 5. Testing with Quectel RM500Q
+
+## 5.1 Setup Quectel
+With [PuTTY](https://the.earth.li/~sgtatham/putty/latest/w64/putty.exe), send the following AT commands to the module using a serial interface (ex: COM2) at 115200 bps:
+```bash
+# MUST be sent at least once everytime there is a firmware upgrade!
+AT+QMBNCFG="Select","ROW_Commercial"
+AT+QMBNCFG="AutoSel",0
+AT+CFUN=1,1
+AT+CGDCONT=1
+AT+CGDCONT=2
+AT+CGDCONT=3
+AT+CGDCONT=1,"IP","oai"
+
+# (Optional, debug only, AT commands) Activate PDP context, retrieve IP address and test with ping
+AT+CGACT=1,1
+AT+CGPADDR=1
+AT+QPING=1,"openairinterface.org"
+```
+
+## 5.2 Ping test
+- UE host
+```bash
+ping 192.168.70.135 -n 1000 -S 12.1.1.2
+```
+- CN5G host
+```bash
+docker exec -it oai-ext-dn ping 12.1.1.2
+```
+
+## 5.3 Downlink iPerf test
+- UE host
+ - Download iPerf for Microsoft Windows from [here](https://iperf.fr/download/windows/iperf-2.0.9-win64.zip).
+ - Extract to Desktop and run with Command Prompt:
+```bash
+cd C:\Users\User\Desktop\iPerf\iperf-2.0.9-win64\iperf-2.0.9-win64
+iperf -s -u -i 1 -B 12.1.1.2
+```
+
+- CN5G host
+```bash
+docker exec -it oai-ext-dn iperf -u -t 86400 -i 1 -fk -B 192.168.70.135 -b 200M -c 12.1.1.2
+```
diff --git a/doc/tutorial_resources/docker-compose-basic-nrf.yaml b/doc/tutorial_resources/docker-compose-basic-nrf.yaml
new file mode 100644
index 0000000000..6750cb78be
--- /dev/null
+++ b/doc/tutorial_resources/docker-compose-basic-nrf.yaml
@@ -0,0 +1,316 @@
+version: '3.8'
+services:
+ mysql:
+ container_name: "mysql"
+ image: mysql:5.7
+ volumes:
+ - ./oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
+ - ./mysql-healthcheck2.sh:/tmp/mysql-healthcheck.sh
+ environment:
+ - TZ=Europe/Paris
+ - MYSQL_DATABASE=oai_db
+ - MYSQL_USER=test
+ - MYSQL_PASSWORD=test
+ - MYSQL_ROOT_PASSWORD=linux
+ healthcheck:
+ test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
+ interval: 10s
+ timeout: 5s
+ retries: 5
+ networks:
+ public_net:
+ ipv4_address: 192.168.70.131
+ oai-udr:
+ container_name: oai-udr
+ image: oai-udr:develop
+ environment:
+ - TZ=Europe/Paris
+ - INSTANCE=0
+ - PID_DIRECTORY=/var/run
+ - UDR_INTERFACE_NAME_FOR_NUDR=eth0
+ - UDR_INTERFACE_PORT_FOR_NUDR=80
+ - UDR_INTERFACE_HTTP2_PORT_FOR_NUDR=8080
+ - UDR_API_VERSION=v1
+ - MYSQL_IPV4_ADDRESS=192.168.70.131
+ - MYSQL_USER=test
+ - MYSQL_PASS=test
+ - MYSQL_DB=oai_db
+ - WAIT_MYSQL=120
+ depends_on:
+ - mysql
+ networks:
+ public_net:
+ ipv4_address: 192.168.70.136
+ volumes:
+ - ./udr-healthcheck.sh:/openair-udr/bin/udr-healthcheck.sh
+ healthcheck:
+ test: /bin/bash -c "/openair-udr/bin/udr-healthcheck.sh"
+ interval: 10s
+ timeout: 5s
+ retries: 5
+ oai-udm:
+ container_name: oai-udm
+ image: oai-udm:develop
+ environment:
+ - TZ=Europe/Paris
+ - INSTANCE=0
+ - PID_DIRECTORY=/var/run
+ - UDM_NAME=OAI_UDM
+ - SBI_IF_NAME=eth0
+ - SBI_PORT=80
+ - UDM_VERSION_NB=v1
+ - USE_FQDN_DNS=yes
+ - UDR_IP_ADDRESS=192.168.70.136
+ - UDR_PORT=80
+ - UDR_VERSION_NB=v1
+ - UDR_FQDN=oai-udr
+ depends_on:
+ - oai-udr
+ networks:
+ public_net:
+ ipv4_address: 192.168.70.137
+ volumes:
+ - ./udm-healthcheck.sh:/openair-udm/bin/udm-healthcheck.sh
+ healthcheck:
+ test: /bin/bash -c "/openair-udm/bin/udm-healthcheck.sh"
+ interval: 10s
+ timeout: 5s
+ retries: 5
+ oai-ausf:
+ container_name: oai-ausf
+ image: oai-ausf:develop
+ environment:
+ - TZ=Europe/Paris
+ - INSTANCE_ID=0
+ - PID_DIR=/var/run
+ - AUSF_NAME=OAI_AUSF
+ - SBI_IF_NAME=eth0
+ - SBI_PORT=80
+ - USE_FQDN_DNS=yes
+ - UDM_IP_ADDRESS=192.168.70.137
+ - UDM_PORT=80
+ - UDM_VERSION_NB=v1
+ - UDM_FQDN=oai-udm
+ depends_on:
+ - oai-udm
+ networks:
+ public_net:
+ ipv4_address: 192.168.70.138
+ volumes:
+ - ./ausf-healthcheck.sh:/openair-ausf/bin/ausf-healthcheck.sh
+ healthcheck:
+ test: /bin/bash -c "/openair-ausf/bin/ausf-healthcheck.sh"
+ interval: 10s
+ timeout: 5s
+ retries: 5
+ oai-nrf:
+ container_name: "oai-nrf"
+ image: oai-nrf:develop
+ environment:
+ - NRF_INTERFACE_NAME_FOR_SBI=eth0
+ - NRF_INTERFACE_PORT_FOR_SBI=80
+ - NRF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
+ - NRF_API_VERSION=v1
+ - INSTANCE=0
+ - PID_DIRECTORY=/var/run
+ networks:
+ public_net:
+ ipv4_address: 192.168.70.130
+ volumes:
+ - ./nrf-healthcheck.sh:/openair-nrf/bin/nrf-healthcheck.sh
+ healthcheck:
+ test: /bin/bash -c "/openair-nrf/bin/nrf-healthcheck.sh"
+ interval: 10s
+ timeout: 5s
+ retries: 5
+ oai-amf:
+ container_name: "oai-amf"
+ image: oai-amf:develop
+ environment:
+ - TZ=Europe/paris
+ - INSTANCE=0
+ - PID_DIRECTORY=/var/run
+ - MCC=208
+ - MNC=99
+ - REGION_ID=128
+ - AMF_SET_ID=1
+ - SERVED_GUAMI_MCC_0=208
+ - SERVED_GUAMI_MNC_0=99
+ - SERVED_GUAMI_REGION_ID_0=128
+ - SERVED_GUAMI_AMF_SET_ID_0=1
+ - SERVED_GUAMI_MCC_1=460
+ - SERVED_GUAMI_MNC_1=11
+ - SERVED_GUAMI_REGION_ID_1=10
+ - SERVED_GUAMI_AMF_SET_ID_1=1
+ - PLMN_SUPPORT_MCC=208
+ - PLMN_SUPPORT_MNC=99
+ - PLMN_SUPPORT_TAC=0x0001
+ - SST_0=1
+ - SD_0=1
+ - SST_1=1
+ - SD_1=12
+ - AMF_INTERFACE_NAME_FOR_NGAP=eth0
+ - AMF_INTERFACE_NAME_FOR_N11=eth0
+ - SMF_INSTANCE_ID_0=1
+ - SMF_FQDN_0=oai-smf
+ - SMF_IPV4_ADDR_0=192.168.70.133
+ - SMF_HTTP_VERSION_0=v1
+ - SELECTED_0=true
+ - SMF_INSTANCE_ID_1=2
+ - SMF_FQDN_1=oai-smf
+ - SMF_IPV4_ADDR_1=0.0.0.0
+ - SMF_HTTP_VERSION_1=v1
+ - SELECTED_1=false
+ - MYSQL_SERVER=192.168.70.131
+ - MYSQL_USER=root
+ - MYSQL_PASS=linux
+ - MYSQL_DB=oai_db
+ - OPERATOR_KEY=1006020f0a478bf6b699f15c062e42b3
+ - NRF_IPV4_ADDRESS=192.168.70.130
+ - NRF_PORT=80
+ - NF_REGISTRATION=yes
+ - SMF_SELECTION=yes
+ - USE_FQDN_DNS=yes
+ - EXTERNAL_AUSF=yes
+ - NRF_API_VERSION=v1
+ - NRF_FQDN=oai-nrf
+ - AUSF_IPV4_ADDRESS=192.168.70.138
+ - AUSF_PORT=80
+ - AUSF_API_VERSION=v1
+ - AUSF_FQDN=oai-ausf
+ depends_on:
+ - mysql
+ - oai-nrf
+ - oai-ausf
+ volumes:
+ - ./amf-healthcheck.sh:/openair-amf/bin/amf-healthcheck.sh
+ healthcheck:
+ test: /bin/bash -c "/openair-amf/bin/amf-healthcheck.sh"
+ interval: 10s
+ timeout: 15s
+ retries: 5
+ networks:
+ public_net:
+ ipv4_address: 192.168.70.132
+ oai-smf:
+ container_name: "oai-smf"
+ image: oai-smf:develop
+ environment:
+ - TZ=Europe/Paris
+ - INSTANCE=0
+ - PID_DIRECTORY=/var/run
+ - SMF_INTERFACE_NAME_FOR_N4=eth0
+ - SMF_INTERFACE_NAME_FOR_SBI=eth0
+ - SMF_INTERFACE_PORT_FOR_SBI=80
+ - SMF_INTERFACE_HTTP2_PORT_FOR_SBI=9090
+ - SMF_API_VERSION=v1
+ - DEFAULT_DNS_IPV4_ADDRESS=8.8.8.8
+ - DEFAULT_DNS_SEC_IPV4_ADDRESS=4.4.4.4
+ - AMF_IPV4_ADDRESS=192.168.70.132
+ - AMF_PORT=80
+ - AMF_API_VERSION=v1
+ - AMF_FQDN=oai-amf
+ - UDM_IPV4_ADDRESS=192.168.70.137
+ - UDM_PORT=80
+ - UDM_API_VERSION=v1
+ - UDM_FQDN=oai-udm
+ - UPF_IPV4_ADDRESS=192.168.70.134
+ - UPF_FQDN_0=oai-spgwu
+ - NRF_IPV4_ADDRESS=192.168.70.130
+ - NRF_PORT=80
+ - NRF_API_VERSION=v1
+ - USE_LOCAL_SUBSCRIPTION_INFO=yes
+ - NRF_FQDN=oai-nrf
+ - REGISTER_NRF=yes
+ - DISCOVER_UPF=yes
+ - USE_FQDN_DNS=yes
+ - DNN_RANGE1=12.1.1.2 - 12.1.1.128
+ - DNN_RANGE0=12.2.1.2 - 12.2.1.128
+ - DNN_NI1=oai
+ depends_on:
+ - oai-nrf
+ - oai-amf
+ volumes:
+ - ./smf-healthcheck.sh:/openair-smf/bin/smf-healthcheck.sh
+ healthcheck:
+ test: /bin/bash -c "/openair-smf/bin/smf-healthcheck.sh"
+ interval: 10s
+ timeout: 5s
+ retries: 5
+ networks:
+ public_net:
+ ipv4_address: 192.168.70.133
+ oai-spgwu:
+ container_name: "oai-spgwu"
+ image: oai-spgwu-tiny:develop
+ environment:
+ - TZ=Europe/Paris
+ - PID_DIRECTORY=/var/run
+ - SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP=eth0
+ - SGW_INTERFACE_NAME_FOR_SX=eth0
+ - PGW_INTERFACE_NAME_FOR_SGI=eth0
+ - NETWORK_UE_NAT_OPTION=yes
+ - NETWORK_UE_IP=12.1.1.0/24
+ - SPGWC0_IP_ADDRESS=192.168.70.133
+ - BYPASS_UL_PFCP_RULES=no
+ - MCC=208
+ - MNC=99
+ - MNC03=099
+ - TAC=1
+ - GW_ID=1
+ - REALM=openairinterface.org
+ - ENABLE_5G_FEATURES=yes
+ - REGISTER_NRF=yes
+ - USE_FQDN_NRF=no
+ - UPF_FQDN_5G=oai-spgwu
+ - NRF_IPV4_ADDRESS=192.168.70.130
+ - NRF_PORT=80
+ - NRF_API_VERSION=v1
+ - NRF_FQDN=oai-nrf
+ - NSSAI_SST_0=1
+ - NSSAI_SD_0=1
+ - DNN_0=oai
+ depends_on:
+ - oai-nrf
+ - oai-smf
+ cap_add:
+ - NET_ADMIN
+ - SYS_ADMIN
+ cap_drop:
+ - ALL
+ privileged: true
+ volumes:
+ - ./spgwu-healthcheck.sh:/openair-spgwu-tiny/bin/spgwu-healthcheck.sh
+ healthcheck:
+ test: /bin/bash -c "/openair-spgwu-tiny/bin/spgwu-healthcheck.sh"
+ interval: 10s
+ timeout: 5s
+ retries: 5
+ networks:
+ public_net:
+ ipv4_address: 192.168.70.134
+ oai-ext-dn:
+ image: ubuntu:bionic
+ privileged: true
+ container_name: oai-ext-dn
+ entrypoint: /bin/bash -c \
+ "apt update; apt install -y iptables iproute2 iperf iperf3 iputils-ping;"\
+ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
+ "ip route add 12.1.1.0/24 via 192.168.70.134 dev eth0; sleep infinity"
+ depends_on:
+ - oai-spgwu
+ networks:
+ public_net:
+ ipv4_address: 192.168.70.135
+networks:
+ public_net:
+ external:
+ name: demo-oai-public-net
+# public_net:
+# driver: bridge
+# name: demo-oai-public-net
+# ipam:
+# config:
+# - subnet: 192.168.70.128/26
+# driver_opts:
+# com.docker.network.bridge.name: "demo-oai"
diff --git a/doc/tutorial_resources/oai_db.sql b/doc/tutorial_resources/oai_db.sql
new file mode 100644
index 0000000000..e019c60e86
--- /dev/null
+++ b/doc/tutorial_resources/oai_db.sql
@@ -0,0 +1,312 @@
+-- phpMyAdmin SQL Dump
+-- version 5.1.0
+-- https://www.phpmyadmin.net/
+--
+-- Host: 172.16.200.10:3306
+-- Generation Time: Mar 22, 2021 at 10:31 AM
+-- Server version: 5.7.33
+-- PHP Version: 7.4.15
+
+SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
+START TRANSACTION;
+SET time_zone = "+00:00";
+
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8mb4 */;
+
+--
+-- Database: `oai_db`
+--
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `AccessAndMobilitySubscriptionData`
+--
+
+CREATE TABLE `AccessAndMobilitySubscriptionData` (
+ `ueid` varchar(15) NOT NULL,
+ `servingPlmnid` varchar(15) NOT NULL,
+ `supportedFeatures` varchar(50) DEFAULT NULL,
+ `gpsis` json DEFAULT NULL,
+ `internalGroupIds` json DEFAULT NULL,
+ `sharedVnGroupDataIds` json DEFAULT NULL,
+ `subscribedUeAmbr` json DEFAULT NULL,
+ `nssai` json DEFAULT NULL,
+ `ratRestrictions` json DEFAULT NULL,
+ `forbiddenAreas` json DEFAULT NULL,
+ `serviceAreaRestriction` json DEFAULT NULL,
+ `coreNetworkTypeRestrictions` json DEFAULT NULL,
+ `rfspIndex` int(10) DEFAULT NULL,
+ `subsRegTimer` int(10) DEFAULT NULL,
+ `ueUsageType` int(10) DEFAULT NULL,
+ `mpsPriority` tinyint(1) DEFAULT NULL,
+ `mcsPriority` tinyint(1) DEFAULT NULL,
+ `activeTime` int(10) DEFAULT NULL,
+ `sorInfo` json DEFAULT NULL,
+ `sorInfoExpectInd` tinyint(1) DEFAULT NULL,
+ `sorafRetrieval` tinyint(1) DEFAULT NULL,
+ `sorUpdateIndicatorList` json DEFAULT NULL,
+ `upuInfo` json DEFAULT NULL,
+ `micoAllowed` tinyint(1) DEFAULT NULL,
+ `sharedAmDataIds` json DEFAULT NULL,
+ `odbPacketServices` json DEFAULT NULL,
+ `serviceGapTime` int(10) DEFAULT NULL,
+ `mdtUserConsent` json DEFAULT NULL,
+ `mdtConfiguration` json DEFAULT NULL,
+ `traceData` json DEFAULT NULL,
+ `cagData` json DEFAULT NULL,
+ `stnSr` varchar(50) DEFAULT NULL,
+ `cMsisdn` varchar(50) DEFAULT NULL,
+ `nbIoTUePriority` int(10) DEFAULT NULL,
+ `nssaiInclusionAllowed` tinyint(1) DEFAULT NULL,
+ `rgWirelineCharacteristics` varchar(50) DEFAULT NULL,
+ `ecRestrictionDataWb` json DEFAULT NULL,
+ `ecRestrictionDataNb` tinyint(1) DEFAULT NULL,
+ `expectedUeBehaviourList` json DEFAULT NULL,
+ `primaryRatRestrictions` json DEFAULT NULL,
+ `secondaryRatRestrictions` json DEFAULT NULL,
+ `edrxParametersList` json DEFAULT NULL,
+ `ptwParametersList` json DEFAULT NULL,
+ `iabOperationAllowed` tinyint(1) DEFAULT NULL,
+ `wirelineForbiddenAreas` json DEFAULT NULL,
+ `wirelineServiceAreaRestriction` json DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `Amf3GppAccessRegistration`
+--
+
+CREATE TABLE `Amf3GppAccessRegistration` (
+ `ueid` varchar(15) NOT NULL,
+ `amfInstanceId` varchar(50) NOT NULL,
+ `supportedFeatures` varchar(50) DEFAULT NULL,
+ `purgeFlag` tinyint(1) DEFAULT NULL,
+ `pei` varchar(50) DEFAULT NULL,
+ `imsVoPs` json DEFAULT NULL,
+ `deregCallbackUri` varchar(50) NOT NULL,
+ `amfServiceNameDereg` json DEFAULT NULL,
+ `pcscfRestorationCallbackUri` varchar(50) DEFAULT NULL,
+ `amfServiceNamePcscfRest` json DEFAULT NULL,
+ `initialRegistrationInd` tinyint(1) DEFAULT NULL,
+ `guami` json NOT NULL,
+ `backupAmfInfo` json DEFAULT NULL,
+ `drFlag` tinyint(1) DEFAULT NULL,
+ `ratType` json NOT NULL,
+ `urrpIndicator` tinyint(1) DEFAULT NULL,
+ `amfEeSubscriptionId` varchar(50) DEFAULT NULL,
+ `epsInterworkingInfo` json DEFAULT NULL,
+ `ueSrvccCapability` tinyint(1) DEFAULT NULL,
+ `registrationTime` varchar(50) DEFAULT NULL,
+ `vgmlcAddress` json DEFAULT NULL,
+ `contextInfo` json DEFAULT NULL,
+ `noEeSubscriptionInd` tinyint(1) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `AuthenticationStatus`
+--
+
+CREATE TABLE `AuthenticationStatus` (
+ `ueid` varchar(20) NOT NULL,
+ `nfInstanceId` varchar(50) NOT NULL,
+ `success` tinyint(1) NOT NULL,
+ `timeStamp` varchar(50) NOT NULL,
+ `authType` varchar(25) NOT NULL,
+ `servingNetworkName` varchar(50) NOT NULL,
+ `authRemovalInd` tinyint(1) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `AuthenticationSubscription`
+--
+
+CREATE TABLE `AuthenticationSubscription` (
+ `ueid` varchar(20) NOT NULL,
+ `authenticationMethod` varchar(25) NOT NULL,
+ `encPermanentKey` varchar(50) DEFAULT NULL,
+ `protectionParameterId` varchar(50) DEFAULT NULL,
+ `sequenceNumber` json DEFAULT NULL,
+ `authenticationManagementField` varchar(50) DEFAULT NULL,
+ `algorithmId` varchar(50) DEFAULT NULL,
+ `encOpcKey` varchar(50) DEFAULT NULL,
+ `encTopcKey` varchar(50) DEFAULT NULL,
+ `vectorGenerationInHss` tinyint(1) DEFAULT NULL,
+ `n5gcAuthMethod` varchar(15) DEFAULT NULL,
+ `rgAuthenticationInd` tinyint(1) DEFAULT NULL,
+ `supi` varchar(20) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Dumping data for table `AuthenticationSubscription`
+--
+
+INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES
+('208950000000031', '5G_AKA', '0C0A34601D4F07677303652C0462535B', '0C0A34601D4F07677303652C0462535B', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', '63bfa50ee6523365ff14c1f45f88737d', NULL, NULL, NULL, NULL, '208950000000031');
+
+INSERT INTO `AuthenticationSubscription` (`ueid`, `authenticationMethod`, `encPermanentKey`, `protectionParameterId`, `sequenceNumber`, `authenticationManagementField`, `algorithmId`, `encOpcKey`, `encTopcKey`, `vectorGenerationInHss`, `n5gcAuthMethod`, `rgAuthenticationInd`, `supi`) VALUES
+('208990000000001', '5G_AKA', 'fec86ba6eb707ed08905757b1bb44b8f', 'fec86ba6eb707ed08905757b1bb44b8f', '{\"sqn\": \"000000000020\", \"sqnScheme\": \"NON_TIME_BASED\", \"lastIndexes\": {\"ausf\": 0}}', '8000', 'milenage', 'C42449363BBAD02B66D16BC975D77CC1', NULL, NULL, NULL, NULL, '208990000000001');
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `SdmSubscriptions`
+--
+
+CREATE TABLE `SdmSubscriptions` (
+ `ueid` varchar(15) NOT NULL,
+ `subsId` int(10) UNSIGNED NOT NULL,
+ `nfInstanceId` varchar(50) NOT NULL,
+ `implicitUnsubscribe` tinyint(1) DEFAULT NULL,
+ `expires` varchar(50) DEFAULT NULL,
+ `callbackReference` varchar(50) NOT NULL,
+ `amfServiceName` json DEFAULT NULL,
+ `monitoredResourceUris` json NOT NULL,
+ `singleNssai` json DEFAULT NULL,
+ `dnn` varchar(50) DEFAULT NULL,
+ `subscriptionId` varchar(50) DEFAULT NULL,
+ `plmnId` json DEFAULT NULL,
+ `immediateReport` tinyint(1) DEFAULT NULL,
+ `report` json DEFAULT NULL,
+ `supportedFeatures` varchar(50) DEFAULT NULL,
+ `contextInfo` json DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `SessionManagementSubscriptionData`
+--
+
+CREATE TABLE `SessionManagementSubscriptionData` (
+ `ueid` varchar(15) NOT NULL,
+ `servingPlmnid` varchar(15) NOT NULL,
+ `singleNssai` json NOT NULL,
+ `dnnConfigurations` json DEFAULT NULL,
+ `internalGroupIds` json DEFAULT NULL,
+ `sharedVnGroupDataIds` json DEFAULT NULL,
+ `sharedDnnConfigurationsId` varchar(50) DEFAULT NULL,
+ `odbPacketServices` json DEFAULT NULL,
+ `traceData` json DEFAULT NULL,
+ `sharedTraceDataId` varchar(50) DEFAULT NULL,
+ `expectedUeBehavioursList` json DEFAULT NULL,
+ `suggestedPacketNumDlList` json DEFAULT NULL,
+ `3gppChargingCharacteristics` varchar(50) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `SmfRegistrations`
+--
+
+CREATE TABLE `SmfRegistrations` (
+ `ueid` varchar(15) NOT NULL,
+ `subpduSessionId` int(10) NOT NULL,
+ `smfInstanceId` varchar(50) NOT NULL,
+ `smfSetId` varchar(50) DEFAULT NULL,
+ `supportedFeatures` varchar(50) DEFAULT NULL,
+ `pduSessionId` int(10) NOT NULL,
+ `singleNssai` json NOT NULL,
+ `dnn` varchar(50) DEFAULT NULL,
+ `emergencyServices` tinyint(1) DEFAULT NULL,
+ `pcscfRestorationCallbackUri` varchar(50) DEFAULT NULL,
+ `plmnId` json NOT NULL,
+ `pgwFqdn` varchar(50) DEFAULT NULL,
+ `epdgInd` tinyint(1) DEFAULT NULL,
+ `deregCallbackUri` varchar(50) DEFAULT NULL,
+ `registrationReason` json DEFAULT NULL,
+ `registrationTime` varchar(50) DEFAULT NULL,
+ `contextInfo` json DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- --------------------------------------------------------
+
+--
+-- Table structure for table `SmfSelectionSubscriptionData`
+--
+
+CREATE TABLE `SmfSelectionSubscriptionData` (
+ `ueid` varchar(15) NOT NULL,
+ `servingPlmnid` varchar(15) NOT NULL,
+ `supportedFeatures` varchar(50) DEFAULT NULL,
+ `subscribedSnssaiInfos` json DEFAULT NULL,
+ `sharedSnssaiInfosId` varchar(50) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+--
+-- Indexes for dumped tables
+--
+
+--
+-- Indexes for table `AccessAndMobilitySubscriptionData`
+--
+ALTER TABLE `AccessAndMobilitySubscriptionData`
+ ADD PRIMARY KEY (`ueid`,`servingPlmnid`) USING BTREE;
+
+--
+-- Indexes for table `Amf3GppAccessRegistration`
+--
+ALTER TABLE `Amf3GppAccessRegistration`
+ ADD PRIMARY KEY (`ueid`);
+
+--
+-- Indexes for table `AuthenticationStatus`
+--
+ALTER TABLE `AuthenticationStatus`
+ ADD PRIMARY KEY (`ueid`);
+
+--
+-- Indexes for table `AuthenticationSubscription`
+--
+ALTER TABLE `AuthenticationSubscription`
+ ADD PRIMARY KEY (`ueid`);
+
+--
+-- Indexes for table `SdmSubscriptions`
+--
+ALTER TABLE `SdmSubscriptions`
+ ADD PRIMARY KEY (`subsId`,`ueid`) USING BTREE;
+
+--
+-- Indexes for table `SessionManagementSubscriptionData`
+--
+ALTER TABLE `SessionManagementSubscriptionData`
+ ADD PRIMARY KEY (`ueid`,`servingPlmnid`) USING BTREE;
+
+--
+-- Indexes for table `SmfRegistrations`
+--
+ALTER TABLE `SmfRegistrations`
+ ADD PRIMARY KEY (`ueid`,`subpduSessionId`) USING BTREE;
+
+--
+-- Indexes for table `SmfSelectionSubscriptionData`
+--
+ALTER TABLE `SmfSelectionSubscriptionData`
+ ADD PRIMARY KEY (`ueid`,`servingPlmnid`) USING BTREE;
+
+--
+-- AUTO_INCREMENT for dumped tables
+--
+
+--
+-- AUTO_INCREMENT for table `SdmSubscriptions`
+--
+ALTER TABLE `SdmSubscriptions`
+ MODIFY `subsId` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
+COMMIT;
+
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+