-**Core Network Configuration**: The [docker-compose](../docker-compose/docker-compose.yaml) file has configuration parameters of all the core network components. The file is pre-configured with parameters related to an [example scenario](./DEPLOY_SA5G_WITH_DS_TESTER.md). The table contains the location of the configuration files. These files contains allowed configurable parameters. **Keep checking this file it is possible that we will add new parameters for new features.**
Once again we chose an **IDLE** IP range in our network. **Please change to proper value in your environment.**
- The PLMN, TAC, Operator Key should be properly configured in amf.conf according to gNB and UE
- In case of a COTS UE by default there are two PDN sessions so check the smf.conf to configure the right names for the IMS. Currently some parameters can not be configured via docker-compose.yaml. We recommend you directly configure them in the conf file and mount the file in the docker during run time.
```
## Configure here
DNN_LIST = (
# IPV4_POOL, IPV6_POOL are index in IPV4_LIST, IPV6_LIST, PDU_SESSION_TYPE choice in {IPv4, IPv6, IPv4v6}
- Incase NRF is not needed then it can be disabled in amf.conf,smf.conf and spgw_u.conf.
```
#smf.conf
REGISTER_NRF = "no"; # Set to yes if SMF resgisters to an NRF
DISCOVER_UPF = "no"; # Set to yes to enable UPF discovery and selection
#amf.conf
NF_REGISTRATION = "no"; # Set to yes if AMF resgisters to an NRF
SMF_SELECTION = "no"; # Set to yes to enable SMF discovery and selection
#spgw_u.conf
REGISTER_NRF = "no";
```
- An new user subscription information should present in mysql database before trying to connect the UE . This can be done by adding the UE information in the oai_db.sql file
Container deployment has to follow a strict order if the `NRF` is used for `SMF` and `UPF` registration
mysql --> oai-nrf --> oai-amf --> oai-smf --> oai-upf
- Container deployment has to follow a strict order if the `NRF` is used for `SMF` and `UPF` registration
```
mysql --> oai-nrf --> oai-amf --> oai-smf --> oai-upf
```
- If no nrf then
```
mysql --> oai-amf --> oai-smf --> oai-upf
```
# 3. Networking #
- The [docker-compose.yaml](../docker-compose/docker-compose.yaml) can create the network automatically, currently in the file automatic network creation is disabled. It can be enabled by uncommenting the lines.
```bash
networks:
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"
```
- In user wants to create manual network then below is the command
# 3. Configure the containers #
components. To capture initial message exchange between smf<-->nrf<-->upf.
- The `docker-compose-host` machine needs to be configured with `demo-oai-public-net` bridge before deploying core network components. To capture initial message exchange between smf<-->nrf<-->upf. Though the bridge can be automatically created using docker-compose file if there is no need to capture initial packets.
- The `docker-compose-host` machine needs to be configured with `demo-oai-public-net` bridge before deploying core network components. To capture initial message exchange between smf<-->nrf<-->upf.
```bash
(docker-compose-host)$ docker network create \
...
...
@@ -81,6 +82,21 @@ The new version of `wireshark` may not be available in the ubuntu repository so
d2d34e05bb2d bridge bridge local
455631b3749c demo-oai-public-net bridge local
```
- Optional, Though the bridge can be automatically created using docker-compose file if there is no need to capture initial packets. Uncomment the last lines of the [docker-compose.yaml](../docker-compose/docker-compose.yaml) or docker-compose-no-nrf.yaml. Else replace with below section
```
networks:
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"
```
- Optional, if the `docker-compose-host` machine is not configured with packet forwarding then it can be done using below command,
```bash
...
...
@@ -113,14 +129,14 @@ The new version of `wireshark` may not be available in the ubuntu repository so
## 4. Configuring the OAI-5G Core Network Functions ##
-**Core Network Configuration**: The docker-compose file has configuration parameters of each core network component. The file is pre-configured with parameters related to this scenario. The table contains the location of the configuration files. These files contains allowed configurable parameters. Keep checking this file it is possible that we will add new parameters for new features.
-**Core Network Configuration**: The docker-compose file has configuration parameters of each core network component. The file is pre-configured with parameters related to this scenario. The table contains the location of the configuration files. These files contains allowed configurable parameters. **Keep checking this file it is possible that we will add new parameters for new features.**
-**User Subscprition Profile**: The dsTest UE which will request for a PDU session will have this user profile. Verify that this entry is present in the oai_db.sql file located in docker-compose/oai-db.sql.
...
...
@@ -171,9 +187,9 @@ The new version of `wireshark` may not be available in the ubuntu repository so
## 6. Deploying OAI 5g Core Network ##
- The core network is deployed using a bash script which is a wrapper around `docker-compose` and `docker` command.
- The core network is deployed using a [bash script](../docker-compose/core-network.sh) which is a wrapper around `docker-compose` and `docker` command.
- The script informs the user when the core-network is correctly configured by checking health status of containers and connectivity between different core network components.
- If the script is executed without any arguments then its usage can be seen
- If the script is executed without any arguments then the helper menu is visible
```bash
(docker-compose-host)$ pwd
...
...
@@ -280,14 +296,14 @@ This section is subdivided in two parts the first part for analysing the message
@@ -328,7 +344,14 @@ Using wireshark open scenario.pcap use the filter ngap || http || pfcp || gtp

## 9. Demo Video ##
- Releasing soon on OAI youtube channel, don't miss it
## 10. Notes ##
- The `oai-ext-dn` container is optional and is only required if the user wants to ping the dsTest UE. In general this container is not required except for testing purposes.
- There is a possibility to perform the same test or setup the core network without nrf by using `docker-compose/docker-compose-no-nrf.yaml`. Check the configuration before using the compose file.
- This tutorial can be taken as reference to test the OAI 5G core with a COTS UE. The configuration files has to be changed according to the gNB and COTS UE information should be present in the mysql database.
- Generally, in a COTS UE two PDN sessions are created by default so configure the IMS in SMF properly. Currently some parameters can not be configured via [docker-compose.yaml](../docker-compose/docker-compose.yaml). We recommend you directly configure them in the conf file and mount the file in the docker during run time.
- Its not necessary to use ./core-network.sh script you can directly deploy using `docker-compose` command