diff --git a/docker-compose/docker-compose-no-nrf.yaml b/docker-compose/docker-compose-no-nrf.yaml index fd9d63f43503d45966c19fe003258e2f64bebdd5..6a09f81531f20873bc6146ab79c1c3b20bd00083 100644 --- a/docker-compose/docker-compose-no-nrf.yaml +++ b/docker-compose/docker-compose-no-nrf.yaml @@ -23,12 +23,6 @@ services: oai-amf: container_name: "oai-amf" image: oai-amf:latest - command: > - bash -c "nohup tshark -i eth0 -w /tmp/amf.pcap 2>&1 > /dev/null & - /openair-amf/bin/oai_amf -c /openair-amf/etc/amf.conf -o | tee /tmp/amf.log 2>&1 - " - cap_add: - - NET_ADMIN environment: - TZ=Europe/paris - INSTANCE=0 @@ -94,12 +88,6 @@ services: oai-smf: container_name: "oai-smf" image: oai-smf:latest - command: > - bash -c "nohup tshark -i eth0 -w /tmp/smf.pcap 2>&1 > /dev/null & - /openair-smf/bin/oai_smf -c /openair-smf/etc/smf.conf -o | tee /tmp/smf.log 2>&1 - " - cap_add: - - NET_ADMIN environment: - TZ=Europe/Paris - INSTANCE=0 @@ -110,7 +98,7 @@ services: - SMF_INTERFACE_HTTP2_PORT_FOR_SBI=9090 - SMF_API_VERSION=v1 - DEFAULT_DNS_IPV4_ADDRESS=192.168.18.129 - - DEFAULT_DNS_SEC_IPV4_ADDRESS=8.8.8.8 + - DEFAULT_DNS_SEC_IPV4_ADDRESS=192.168.18.129 - AMF_IPV4_ADDRESS=192.168.70.132 - AMF_PORT=80 - AMF_API_VERSION=v1 @@ -143,10 +131,6 @@ services: oai-spgwu: container_name: "oai-spgwu" image: oai-spgwu-tiny:latest - command: > - bash -c "nohup tshark -i eth0 -w /tmp/spgwu.pcap 2>&1 > /dev/null & - /openair-spgwu-tiny/bin/oai_spgwu -c /openair-spgwu-tiny/etc/spgw_u.conf -o | tee /tmp/spgwu.log 2>&1 - " environment: - TZ=Europe/Paris - PID_DIRECTORY=/var/run @@ -200,16 +184,15 @@ services: "apt update; apt install -y iptables iproute2 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" - command: ["/bin/bash", "-c", "trap : TERM INT; sleep infinity & wait"] depends_on: - oai-spgwu networks: public_net: ipv4_address: 192.168.70.135 networks: - public_net: - external: - name: demo-oai-public-net + # public_net: + # external: + # name: demo-oai-public-net public_net: driver: bridge name: demo-oai-public-net diff --git a/docker-compose/docker-compose.yaml b/docker-compose/docker-compose.yaml index 1f4603aecbb9759208662329d56af6bd0a4c6cfd..0d9c0cee605bf68ced1e32b2b47634e32a6d7103 100644 --- a/docker-compose/docker-compose.yaml +++ b/docker-compose/docker-compose.yaml @@ -3,12 +3,6 @@ services: oai-nrf: container_name: "oai-nrf" image: oai-nrf:latest - command: > - bash -c "nohup tshark -i eth0 -w /tmp/nrf.pcap 2>&1 > /dev/null & - /openair-nrf/bin/oai_nrf -c /openair-nrf/etc/nrf.conf -o | tee /tmp/nrf.log 2>&1 - " - cap_add: - - NET_ADMIN environment: - NRF_INTERFACE_NAME_FOR_SBI=eth0 - NRF_INTERFACE_PORT_FOR_SBI=80 @@ -49,12 +43,6 @@ services: oai-amf: container_name: "oai-amf" image: oai-amf:latest - command: > - bash -c "nohup tshark -i eth0 -w /tmp/amf.pcap 2>&1 > /dev/null & - /openair-amf/bin/oai_amf -c /openair-amf/etc/amf.conf -o | tee /tmp/amf.log 2>&1 - " - cap_add: - - NET_ADMIN environment: - TZ=Europe/paris - INSTANCE=0 @@ -97,7 +85,7 @@ services: - OPERATOR_KEY=63bfa50ee6523365ff14c1f45f88737d - NRF_IPV4_ADDRESS=192.168.70.130 - NRF_PORT=80 - - NF_REGISTRATION=no + - NF_REGISTRATION=yes - SMF_SELECTION=yes - USE_FQDN_DNS=yes - NRF_API_VERSION=v1 @@ -120,12 +108,6 @@ services: oai-smf: container_name: "oai-smf" image: oai-smf:latest - command: > - bash -c "nohup tshark -i eth0 -w /tmp/smf.pcap 2>&1 > /dev/null & - /openair-smf/bin/oai_smf -c /openair-smf/etc/smf.conf -o | tee /tmp/smf.log 2>&1 - " - cap_add: - - NET_ADMIN environment: - TZ=Europe/Paris - INSTANCE=0 @@ -136,7 +118,7 @@ services: - SMF_INTERFACE_HTTP2_PORT_FOR_SBI=9090 - SMF_API_VERSION=v1 - DEFAULT_DNS_IPV4_ADDRESS=192.168.18.129 - - DEFAULT_DNS_SEC_IPV4_ADDRESS=8.8.8.8 + - DEFAULT_DNS_SEC_IPV4_ADDRESS=192.168.18.129 - AMF_IPV4_ADDRESS=0.0.0.0 - AMF_PORT=80 - AMF_API_VERSION=v1 @@ -169,10 +151,6 @@ services: oai-spgwu: container_name: "oai-spgwu" image: oai-spgwu-tiny:latest - command: > - bash -c "nohup tshark -i eth0 -w /tmp/spgwu.pcap 2>&1 > /dev/null & - /openair-spgwu-tiny/bin/oai_spgwu -c /openair-spgwu-tiny/etc/spgw_u.conf -o | tee /tmp/spgwu.log 2>&1 - " environment: - TZ=Europe/Paris - PID_DIRECTORY=/var/run @@ -226,16 +204,15 @@ services: "apt update; apt install -y iptables iproute2 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" - command: ["/bin/bash", "-c", "trap : TERM INT; sleep infinity & wait"] depends_on: - oai-spgwu networks: public_net: ipv4_address: 192.168.70.135 networks: - public_net: - external: - name: demo-oai-public-net + # public_net: + # external: + # name: demo-oai-public-net public_net: driver: bridge name: demo-oai-public-net diff --git a/docs/BUILD_IMAGES.md b/docs/BUILD_IMAGES.md index 30be9ea5e5a0edb11d8193096f8ed98024c899f2..acf4cafbd165afa58196d9b8409e0961ca48fc5e 100644 --- a/docs/BUILD_IMAGES.md +++ b/docs/BUILD_IMAGES.md @@ -78,7 +78,7 @@ git submodule update ## 1.2. You are interested on the latest features. ## -All the latest features are somehow pushed to the `develop` branches of each cNF repository. +All the latest features are somehow pushed to the `develop` branches of each NF repository. It means that we/you are able to build and the Continuous Integration test suite makes sure it does NOT break any existing tested feature. diff --git a/docs/CONFIGURE_CONTAINERS.md b/docs/CONFIGURE_CONTAINERS.md index e9ea54bbbb5e4a249ba0ca91c3826018984d3f57..ce8a0ac52c663491875945aa673f30954bca4aa3 100644 --- a/docs/CONFIGURE_CONTAINERS.md +++ b/docs/CONFIGURE_CONTAINERS.md @@ -20,6 +20,7 @@ 3. [Networking](#3-networking) # 1. Configure the containers # + - **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.** | File Name | Repository | Location | @@ -99,6 +100,82 @@ # 3. Networking # -- The [docker-compose.yaml](../docker-compose/docker-compose.yaml) will create the network automatically. +## 3.1. Automatic docker network deployment. ## + +The [docker-compose.yaml](../docker-compose/docker-compose.yaml) will create the network automatically. The bottom section of the file SHALL look like this: + +```bash +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" +``` + +## 3.2. Manual docker network deployment. ## + +At the deployment, if you want to capture initial transactions between the CN5G components, you will have to manually create the network. + +First edit [docker-compose.yaml](../docker-compose/docker-compose.yaml) to look like this: + +```bash +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" +``` + +Then create the docker network: + + ```bash + (docker-compose-host)$ docker network create \ + --driver=bridge \ + --subnet=192.168.70.128/26 \ + -o "com.docker.network.bridge.name"="demo-oai" \ + demo-oai-public-net + 455631b3749ccd6f10a366cd1c49d5a66cf976d176884252d5d88a1e54049bc5 + (docker-compose-host)$ ifconfig demo-oai + demo-oai: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 + inet 192.168.70.129 netmask 255.255.255.192 broadcast 192.168.70.191 + ether 02:42:9c:0a:23:44 txqueuelen 0 (Ethernet) + RX packets 0 bytes 0 (0.0 B) + RX errors 0 dropped 0 overruns 0 frame 0 + TX packets 0 bytes 0 (0.0 B) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 + (docker-compose-host)$ docker network ls + NETWORK ID NAME DRIVER SCOPE + d2d34e05bb2d bridge bridge local + 455631b3749c demo-oai-public-net bridge local + ``` + +Finally you can start capturing. + +```bash +tshark -i demo-oai -w 5gcn-deployment.pcap +``` + +## 3.3. In case you forgot! ## + +If the `docker-compose-host` machine is not configured with packet forwarding then it can be done using below command, + + ```bash + (docker-compose-host)$ sudo sysctl net.ipv4.conf.all.forwarding=1 + (docker-compose-host)$ sudo iptables -P FORWARD ACCEPT + ``` You are ready to check out the tutorial that [how 5g core works](./DEPLOY_SA5G_WITH_DS_TESTER.md). diff --git a/docs/DEPLOY_HOME.md b/docs/DEPLOY_HOME.md index d8b231dc4e5c469a3b573d2663e8441f310949f9..35acea024816cda647a37e129a618eacd7235594 100644 --- a/docs/DEPLOY_HOME.md +++ b/docs/DEPLOY_HOME.md @@ -12,11 +12,16 @@ </tr> </table> +Welcome to the tutorial home page of OAI 5g Core project. Here you can find lot of tutorials and help manuals. We regularly update these documents depending on the new feature set. + +**2021/07/27 Update: you have now the choice to either pull images or build your-self.** **Table of Contents** 1. [Pre-requisites](./DEPLOY_PRE_REQUESITES.md) -2. [Building the Container Images](./BUILD_IMAGES.md) +2. Getting the images + 1. [Retrieving the Container Images](./RETRIEVE_OFFICIAL_IMAGES.md) + 2. [Building the Container Images](./BUILD_IMAGES.md) 3. [Configuring the Containers](./CONFIGURE_CONTAINERS.md) 4. [Tutorial: 5G Core Network Deployment and Testing with dsTest](./DEPLOY_SA5G_WITH_DS_TESTER.md) 5. [Tutorial: 5G Core Network Deployment using Helm Charts](./DEPLOY_SA5G_HC.md) diff --git a/docs/DEPLOY_PRE_REQUESITES.md b/docs/DEPLOY_PRE_REQUESITES.md index 8e902bd74ba544f40ca101816fb2d763cdeb9739..7bfa3cbc0a80442f4589321d7503d560bc3395c4 100644 --- a/docs/DEPLOY_PRE_REQUESITES.md +++ b/docs/DEPLOY_PRE_REQUESITES.md @@ -48,15 +48,15 @@ $ docker info # 2. Create an account on Docker Hub # -Go to [https://hub.docker.com/](https://hub.docker.com/) website and create an account. +Go to [docker-hub](https://hub.docker.com/) and create an account. # 3. Pull base images # -* Ubuntu version: We need 2 base images: `ubuntu:bionic` and `mysql/mysql-server:5.7` +* Ubuntu version: We need 2 base images: `ubuntu:bionic` and `mysql/mysql:5.7` Currently we are working to support `CentOS8` and `RHEL8` distributions. -First log with your Docker Hub credentials. +First log with your Docker Hub credentials. This is required if your organization has reached pulling limit as `anonymous`. ```bash $ docker login @@ -65,13 +65,11 @@ Username: Password: ``` -Then pull base images. - On a Ubuntu18.04 host: ```bash $ docker pull ubuntu:bionic -$ docker pull mysql/mysql-server:5.7 +$ docker pull mysql:5.7 ``` Finally you may logoff --> your token is stored in plain text.. @@ -138,4 +136,7 @@ $ docker network inspect bridge .... ``` -You are ready to [build the images](./BUILD_IMAGES.md). +Here you have 2 choices: + +* You can pull official images from Docker Hub like [this](./RETRIEVE_OFFICIAL_IMAGES.md). +* Or you are ready to [build your-self the network function images](./BUILD_IMAGES.md). diff --git a/docs/DEPLOY_SA5G_WITH_DS_TESTER.md b/docs/DEPLOY_SA5G_WITH_DS_TESTER.md index dbd7d31c51aa48ce9553488ce33476b07dd8d192..04d5f1a1b72401391ca9fc0257ab02aa09638957 100644 --- a/docs/DEPLOY_SA5G_WITH_DS_TESTER.md +++ b/docs/DEPLOY_SA5G_WITH_DS_TESTER.md @@ -15,10 +15,20 @@  + + +This tutorial will help in understanding how to deploy OAI core network using docker-compose. In this tutorial we have used [dsTest](https://www.developingsolutions.com/products/dstest-5g-core-network-testing/) a commercial paid gNB emulator. Though instead of this readers can also use gNBsim (an opensource gNB emulator), you can follow another tutorial for [this](./DEPLOY_SA5G_WITH_GNBSIM.md). Please follow the tutorial step by step to create a stable working testbed. + +**Reading time: ~20mins** + +**Tutorial replication time: ~1hr** + +Note: In case readers are interested in deploying debuggers/developers core network environment with more logs please follow [this tutorial](./DEBUG_5G_CORE.md) + **TABLE OF CONTENTS** 1. [Pre-requisites](#1-pre-requisites) -2. [Building Container Images](#2-building-container-images) +2. [Network Function Container Images](#2-network-function-container-images) 3. [Configuring Host Machines](#3-configuring-host-machines) 4. [Configuring OAI 5G Core Network Functions](#4-configuring-the-oai-5g-core-network-functions) 5. [Configuring dsTest Scenario](#5-configuring-dstester-scenario) @@ -45,44 +55,122 @@ The requried softwares and their respected versions are listed below. To replica | tshark | 3.4.4 (Git commit c33f6306cbb2) | | wireshark | 3.4.4 (Git commit c33f6306cbb2) | -The new version of `wireshark` may not be available in the ubuntu repository so it is better to build it from source. +The new version of `wireshark` may not be available in the ubuntu repository so it is better to build it from source. + +Most of the times the `docker-compose-host` machine is not configured with packet forwarding then it can be done using below command (if you have already done it in any other section then don't repeat). -To know how to configure the machine with the above requirements vist [pre-requisites](./DEPLOY_PRE_REQUESITES.md) page. +**This is the most important step towards end-to-end connectivity.** -## 2. Building Container Images ## +```bash +(docker-compose-host)$ sudo sysctl net.ipv4.conf.all.forwarding=1 +(docker-compose-host)$ sudo iptables -P FORWARD ACCEPT +``` -- In this demo the image tags and commits which were used are listed below, follow the [Building images](./BUILD_IMAGES.md) to build images with below tags. +To know how to configure the machine with the above requirements vist [pre-requisites](./DEPLOY_PRE_REQUESITES.md) page. -| CNF Name | Branch Name | Commit at time of writing | Ubuntu 18.04 | RHEL8 | -| ----------- |:----------------------- | ------------------------------------------ | ------------ | ---------------| -| AMF | `develop` | `82ca64fe8d79dbadbb1a495124ee26352f81bd7a` | X | Releasing soon | -| SMF | `develop` | `0dba68d6a01e1dad050f47437647f62d40acaec6` | X | Releasing soon | -| NRF | `develop` | `0e877cb5b80a9c74fa6abca60b95e2d3d22f7a52` | X | Releasing soon | -| SPGW-U-TINY | `gtp_extension_header` | `b628036d2e6060da8ba77c5e4cdde35bf18a62a5` | X | Releasing soon | +## 2. Network Function Container Images ## + +- In this demo the network function branch and tags which were used are listed below, follow the [Retrieving images](./RETRIEVE_OFFICIAL_IMAGES.md) or the [Building images](./BUILD_IMAGES.md) to build images with below tags. + +| CNF Name | Branch Name | Tag | Ubuntu 18.04 | RHEL8 (UBI8) | +| ----------- | ----------- | -------- | ------------ | ----------------| +| AMF | `master` | `v1.1.0` | X | X | +| SMF | `master` | `v1.1.0` | X | X | +| NRF | `master` | `v1.1.0` | X | X | +| SPGW-U-TINY | `master` | `v1.1.2` | X | X | + +- In case readers are interested in making images using different branch then **they have to build images from scratch they can't use the docker-hub images**. ## 3. Configuring Host Machines ## -- The `docker-compose-host` machine will be configured with `demo-oai-public-net` bridge automatically using [docker-compose.yaml](../docker-compose/docker-compose.yaml) at the time of deploying core network components. And also for each component it will start capturing `pcap` messages and stores it on the `/tmp/` location of that container. Use the below command as shown as an example. +All the network functions are connected using `demo-oai` bridge. + +There are two ways to create this bridge either manually or automatically using docker-compose. + +* The manual version will allow packet capturing while network functions are getting deployed. So the initial tested setup packets can be captured for debugging purposes or checking if network functions registered properly to NRF. +* The second option of automatic deployment is good when initial packet capture is not important. + +**NOTE** This tutorial needs that the bridge is created manually to analyse NRF packet exchange. +### 3.1 Creating bridge manually + +- The bottom section of [docker-compose file](../docker-compose/docker-compose.yaml) SHALL look like this: + +``` + 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" +``` + +- The `docker-compose-host` machine needs to be configured with `demo-oai` bridge before deploying core network components. To capture initial message exchange between smf<-->nrf<-->upf. ```bash - (docker-compose-host)$ docker cp container_name:/tmp/amf.pcap amf.pcap + (docker-compose-host)$ docker network create \ + --driver=bridge \ + --subnet=192.168.70.128/26 \ + -o "com.docker.network.bridge.name"="demo-oai" \ + demo-oai-public-net + 455631b3749ccd6f10a366cd1c49d5a66cf976d176884252d5d88a1e54049bc5 + (docker-compose-host)$ ifconfig demo-oai + demo-oai: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 + inet 192.168.70.129 netmask 255.255.255.192 broadcast 192.168.70.191 + RX packets 0 bytes 0 (0.0 B) + RX errors 0 dropped 0 overruns 0 frame 0 + TX packets 0 bytes 0 (0.0 B) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 + (docker-compose-host)$ docker network ls + NETWORK ID NAME DRIVER SCOPE + d2d34e05bb2d bridge bridge local + 455631b3749c demo-oai-public-net bridge local + ``` + +### 3.2 Create bridge automatically + +- Though the bridge can be automatically created using docker-compose file if there is no need to capture initial packets. + +This is the `default` version in the [docker-compose.yaml](../docker-compose/docker-compose.yaml) or docker-compose-no-nrf.yaml. + +The bottom section SHALL look like this: + + ``` + 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" ``` -- Optional, if the `docker-compose-host` machine is not configured with packet forwarding then it can be done using below command, +- If the `docker-compose-host` machine is not configured with packet forwarding then it can be done using below command (**important step**), ```bash (docker-compose-host)$ sudo sysctl net.ipv4.conf.all.forwarding=1 - sudo iptables -P FORWARD ACCEPT + (docker-compose-host)$ sudo iptables -P FORWARD ACCEPT ``` - The `dsTest-host` needs to configured with a route to reach `docker-compose-host`. Assuming `dsTest-host` physical interface which is connected with `docker-compose-host` is NIC1 and the ip-address of this interface is IP_ADDR_NIC1 then, ```bash - (dsTest-host)$ sudo ip route add route \ - 192.168.70.128/26 via IP_ADDR_NIC1\ - dev NIC1_NAME + (dsTest-host)$ sudo ip route add route 192.168.70.128/26 \ + via IP_ADDR_NIC1\ + dev NIC1_NAME ``` -- To verify ping the ip-address of the `docker-compose-host` interface connected to demo-oai-public-net bridge, + +- To verify ping the ip-address of the `docker-compose-host` interface connected to demo-oai bridge, if possible also ping amf from the dsTest-host machine. ```bash (dsTest-host)$ ping 192.168.70.129 @@ -110,7 +198,7 @@ To know how to configure the machine with the above requirements vist [pre-requi | spgw_u.conf | (Github) OPENAIRINTERFACE/openair-spgwu-tiny | [etc/spgw_u.conf](https://github.com/OPENAIRINTERFACE/openair-spgwu-tiny/blob/gtp_extension_header/etc/spgw_u.conf) | -- **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. +- **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](../docker-compose/oai_db.sql). ``` IMSI - 208950000000031 @@ -166,7 +254,7 @@ To know how to configure the machine with the above requirements vist [pre-requi ```bash (docker-compose-host)$ pwd /home/<docker-compose-host>/oai/oai-cn-fed/docker-compose - (docker-compose-host)$ ./core-network + (docker-compose-host)$ ./core-network.sh Only use the following options @@ -194,7 +282,7 @@ To know how to configure the machine with the above requirements vist [pre-requi - Starting the core network components, ```bash - (docker-compose-host)$ ./core-network start nrf spgwu + (docker-compose-host)$ ./core-network.sh start nrf spgwu Starting 5gcn components in the order nrf, mysql, amf, smf, spgwu... Creating mysql ... done Creating oai-nrf ... done @@ -244,7 +332,7 @@ To know how to configure the machine with the above requirements vist [pre-requi (docker-compose-host)$ docker logs oai-smf > smf.log (docker-compose-host)$ docker logs oai-nrf > nrf.log (docker-compose-host)$ docker logs oai-spgwu > spgwu.log - (docker-compose-host)$ ./core-network.sh stop nrf + (docker-compose-host)$ ./core-network.sh stop nrf spgwu Stopping the core network... Stopping oai-ext-dn ... done Stopping oai-smf ... done @@ -260,7 +348,7 @@ To know how to configure the machine with the above requirements vist [pre-requi Removing oai-nrf ... done Network demo-oai-public-net is external, skipping Core network stopped - ``` + ``` ## 8. Analysing the Scenario Results ## @@ -278,8 +366,6 @@ This section is subdivided in two parts the first part for analysing the message | dsTest gNB/UE | 192.168.18.184 | - - | Pcap/log files | |:-------------------------------------------------------------------------------------------------------- | | [5gcn-deployment.pcap](./results/dsTest/pcap/5gcn-deployment.pcap) | @@ -335,10 +421,11 @@ Using wireshark open scenario-execution.pcap use the filter ngap || http || pfcp ## 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. +- 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` [file](../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](../docker-compose/core-network.sh) bash script, it is possible to directly deploy using `docker-compose` command +- In case you want to deploy debuggers/developers core network environment with more logs please follow [this tutorial](./DEBUG_5G_CORE.md) ``` #To start the containers diff --git a/docs/DEPLOY_SA5G_WITH_GNBSIM.md b/docs/DEPLOY_SA5G_WITH_GNBSIM.md index 1d7a0d8fb89c483feca8840844b67e22d611bdce..99158f5a82544b24724b5948ded0ae55699d249f 100644 --- a/docs/DEPLOY_SA5G_WITH_GNBSIM.md +++ b/docs/DEPLOY_SA5G_WITH_GNBSIM.md @@ -14,6 +14,12 @@  +**Reading time: ~ 30mins** + +**Tutorial replication time: ~ 1h30mins** + +Note: In case readers are interested in deploying debuggers/developers core network environment with more logs please follow [this tutorial](./DEBUG_5G_CORE.md) + **TABLE OF CONTENTS** 1. Pre-requisites diff --git a/docs/DEPLOY_SA5G_WITH_VPP_UPF.md b/docs/DEPLOY_SA5G_WITH_VPP_UPF.md index 679c1f26db9176ab4b8f08dab0f3a1fc09719081..b015dc6dc4e3c587c706b1962c1352af6a5c5e10 100644 --- a/docs/DEPLOY_SA5G_WITH_VPP_UPF.md +++ b/docs/DEPLOY_SA5G_WITH_VPP_UPF.md @@ -12,8 +12,16 @@ </tr> </table> +**CAUTION: the vpp-upf repository is stil not public.** +  +**Reading time: ~ 30mins** + +**Tutorial replication time: ~ 1h30mins** + +Note: In case readers are interested in deploying debuggers/developers core network environment with more logs please follow [this tutorial](./DEBUG_5G_CORE.md) + **TABLE OF CONTENTS** 1. Pre-requisites diff --git a/docs/RETRIEVE_OFFICIAL_IMAGES.md b/docs/RETRIEVE_OFFICIAL_IMAGES.md new file mode 100644 index 0000000000000000000000000000000000000000..6573dfcdba86965b56b122bfebd8d119936472c6 --- /dev/null +++ b/docs/RETRIEVE_OFFICIAL_IMAGES.md @@ -0,0 +1,100 @@ +<table style="border-collapse: collapse; border: none;"> + <tr style="border-collapse: collapse; border: none;"> + <td style="border-collapse: collapse; border: none;"> + <a href="http://www.openairinterface.org/"> + <img src="./images/oai_final_logo.png" alt="" border=3 height=50 width=150> + </img> + </a> + </td> + <td style="border-collapse: collapse; border: none; vertical-align: center;"> + <b><font size = "5">OpenAirInterface 5G Core Network Deployment : Pulling Container Images</font></b> + </td> + </tr> +</table> + +This page is only valid for an `Ubuntu18` host. + +If you are using any other distributions, please refer to [Build your own images](./BUILD_IMAGES.md). + +If you want to the up-to-date new features, please refer to [Build your own images](./BUILD_IMAGES.md). + +# Pulling the images from Docker Hub # + +Currently the images are hosted under the user account `rdefosseoai`. + +This may change in the future. + +Once again you may need to log on [docker-hub](https://hub.docker.com/) if your organization has reached pulling limit as `anonymous`. + +```bash +$ docker login +Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one. +Username: +Password: +``` + +Now pull images. + +```bash +$ docker pull rdefosseoai/oai-amf +$ docker pull rdefosseoai/oai-nrf +$ docker pull rdefosseoai/oai-spgwu-tiny +$ docker pull rdefosseoai/oai-smf +``` + +And **re-tag** them for tutorials' docker-compose file to work. + +```bash +$ docker image tag rdefosseoai/oai-amf:latest oai-amf:latest +$ docker image tag rdefosseoai/oai-nrf:latest oai-nrf:latest +$ docker image tag rdefosseoai/oai-smf:latest oai-smf:latest +$ docker image tag rdefosseoai/oai-spgwu-tiny:latest oai-spgwu-tiny:latest +``` + +Finally you may logoff --> your token is stored in plain text.. + +```bash +$ docker logout +``` + +We will push new versions when new features are validated. + +# Synchronizing the tutorials # + +**CAUTION: PLEASE READ THIS SECTION VERY CAREFULLY!** + +This repository only has tutorials and Continuous Integration scripts. + +**At the time of writing (2021/07/22), the release tag is `v1.1.0`.** + +| CNF Name | Branch Name | Tag | Ubuntu 18.04 | RHEL8 (UBI8) | +| ----------- | ----------- | -------- | ------------ | ----------------| +| FED REPO | N/A | `v1.1.0` | | | +| AMF | `master` | `v1.1.0` | X | X | +| SMF | `master` | `v1.1.0` | X | X | +| NRF | `master` | `v1.1.0` | X | X | +| SPGW-U-TINY | `master` | `v1.1.2` | X | X | + +```bash +# Clone directly on the latest release tag +$ git clone --branch v1.1.0 https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-fed.git +$ cd oai-cn5g-fed +# If you forgot to clone directly to the latest release tag +$ git checkout -f v1.1.0 + +# Synchronize all git submodules +$ ./scripts/syncComponents.sh +--------------------------------------------------------- +OAI-NRF component branch : master +OAI-AMF component branch : master +OAI-SMF component branch : master +OAI-SPGW-U component branch : master +--------------------------------------------------------- +git submodule deinit --all --force +git submodule init +git submodule update +``` + +Later versions of the `master` branch may not work with the pulled images. + +You are ready to [Configure the Containers](./CONFIGURE_CONTAINERS.md).