From 146f8e6e0db5a91ae2279b71aa1195da97893b88 Mon Sep 17 00:00:00 2001 From: Raphael Defosseux Date: Thu, 12 Aug 2021 12:17:59 +0200 Subject: [PATCH] doc(docker): added tutorial for deploying 5G SA RF sim Signed-off-by: Raphael Defosseux --- .../yaml_files/4g_rfsimulator/README.md | 5 +- .../yaml_files/5g_rfsimulator/README.md | 396 ++++++++++++++++++ .../5g_rfsimulator/oai-end-to-end.jpg | Bin 0 -> 56238 bytes 3 files changed, 400 insertions(+), 1 deletion(-) create mode 100644 ci-scripts/yaml_files/5g_rfsimulator/README.md create mode 100644 ci-scripts/yaml_files/5g_rfsimulator/oai-end-to-end.jpg diff --git a/ci-scripts/yaml_files/4g_rfsimulator/README.md b/ci-scripts/yaml_files/4g_rfsimulator/README.md index a677c642f4..b2a7f8e30c 100644 --- a/ci-scripts/yaml_files/4g_rfsimulator/README.md +++ b/ci-scripts/yaml_files/4g_rfsimulator/README.md @@ -7,7 +7,7 @@ - OAI Full Stack RF simulation with containers + OAI Full Stack 4G-LTE RF simulation with containers @@ -81,11 +81,14 @@ How to build the Traffic-Generator image is explained [here](https://github.com/ **Just `docker-compose up -d` WILL NOT WORK!** +All the following commands **SHALL** be run from the `ci-scripts/yaml_files/4g_rfsimulator` folder. + ## 2.1. Deploy and Configure Cassandra Database ## It is very crutial that the Cassandra DB is fully configured before you do anything else! ```bash +$ cd ci-scripts/yaml_files/4g_rfsimulator $ docker-compose up -d db_init Creating network "rfsim4g-oai-private-net" with the default driver Creating network "rfsim4g-oai-public-net" with the default driver diff --git a/ci-scripts/yaml_files/5g_rfsimulator/README.md b/ci-scripts/yaml_files/5g_rfsimulator/README.md new file mode 100644 index 0000000000..807f1b47c5 --- /dev/null +++ b/ci-scripts/yaml_files/5g_rfsimulator/README.md @@ -0,0 +1,396 @@ + + + + + +
+ + + + + + OAI Full Stack 5G-NR RF simulation with containers +
+ +This page is only valid for an `Ubuntu18` host. + +**TABLE OF CONTENTS** + +1. [Retrieving the images on Docker-Hub](#1-retrieving-the-images-on-docker-hub) +2. [Deploy containers](#2-deploy-containers) + 1. [Deploy OAI 5G Core Network](#21-deploy-oai-5g-core-network) + 2. [Deploy OAI gNB in RF simulator mode and in Standalone Mode](#22-deploy-oai-gnb-in-rf-simulator-mode-and-in-standalone-mode) + 3. [Deploy OAI NR-UE in RF simulator mode and in Standalone Mode](#23-deploy-oai-nr-ue-in-rf-simulator-mode-and-in-standalone-mode) +3. [Check traffic](#3-check-traffic) + 1. [Check your Internet connectivity](#31-check-your-internet-connectivity) + 2. [Start the iperf server inside the NR-UE container](#32-start-the-iperf-server-inside-the-nr-ue-container) + 3. [Start the iperf client inside the ext-dn container](#33-start-the-iperf-client-inside-the-ext-dn-container) +4. [Un-deployment](#4-un-deployment) + +# 1. Retrieving the images on 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 mysql:5.7 +$ docker pull rdefosseoai/oai-amf:latest +$ docker pull rdefosseoai/oai-nrf:latest +$ docker pull rdefosseoai/oai-smf:latest +$ docker pull rdefosseoai/oai-spgwu-tiny:latest + +$ docker pull rdefosseoai/oai-gnb:develop +$ docker pull rdefosseoai/oai-nr-ue:develop +``` + +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 + +$ docker image tag rdefosseoai/oai-gnb:develop oai-gnb:develop +$ docker image tag rdefosseoai/oai-nr-ue:develop oai-nr-ue:develop +``` + +```bash +$ docker logout +``` + +# 2. Deploy containers # + +![Deployment](./oai-end-to-end.jpg) + +**CAUTION: this SHALL be done in multiple steps.** + +**Just `docker-compose up -d` WILL NOT WORK!** + +All the following commands **SHALL** be run from the `ci-scripts/yaml_files/5g_rfsimulator` folder. + +## 2.1. Deploy OAI 5G Core Network ## + +```bash +$ cd ci-scripts/yaml_files/5g_rfsimulator +$ docker-compose up -d mysql oai-nrf oai-amf oai-smf oai-spgwu oai-ext-dn +Creating network "rfsim5g-oai-public-net" with driver "bridge" +Creating network "rfsim5g-oai-traffic_net-net" with driver "bridge" +Creating rfsim5g-oai-nrf ... done +Creating rfsim5g-mysql ... done +Creating rfsim5g-oai-spgwu ... done +Creating rfsim5g-oai-amf ... done +Creating rfsim5g-oai-smf ... done +Creating rfsim5g-oai-ext-dn ... done +``` + +Wait for a bit. + +```bash +$ docker-compose ps -a + Name Command State Ports +------------------------------------------------------------------------------------------------- +rfsim5g-mysql docker-entrypoint.sh mysqld Up (healthy) 3306/tcp, 33060/tcp +rfsim5g-oai-amf /bin/bash /openair-amf/bin ... Up (healthy) 38412/sctp, 80/tcp, 9090/tcp +rfsim5g-oai-ext-dn /bin/bash -c apt update; ... Up (healthy) +rfsim5g-oai-nrf /bin/bash /openair-nrf/bin ... Up (healthy) 80/tcp, 9090/tcp +rfsim5g-oai-smf /bin/bash -c /openair-smf/ ... Up (healthy) 80/tcp, 8805/udp, 9090/tcp +rfsim5g-oai-spgwu /openair-spgwu-tiny/bin/en ... Up (healthy) 2152/udp, 8805/udp +``` + +At this point, you can prepare a capture on the newly-created public docker bridges: + +```bash +$ ifconfig +... +rfsim5g-public: flags=4163 mtu 1500 + inet 192.168.71.129 netmask 255.255.255.192 broadcast 192.168.71.191 + inet6 fe80::42:c4ff:fe2b:3d38 prefixlen 64 scopeid 0x20 + ether 02:42:c4:2b:3d:38 txqueuelen 0 (Ethernet) + RX packets 4 bytes 112 (112.0 B) + RX errors 0 dropped 0 overruns 0 frame 0 + TX packets 7 bytes 626 (626.0 B) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 + +rfsim5g-traffic: flags=4163 mtu 1500 + inet 192.168.72.129 netmask 255.255.255.192 broadcast 192.168.72.191 + inet6 fe80::42:b5ff:fed3:e732 prefixlen 64 scopeid 0x20 + ether 02:42:b5:d3:e7:32 txqueuelen 0 (Ethernet) + RX packets 2652 bytes 142335 (142.3 KB) + RX errors 0 dropped 0 overruns 0 frame 0 + TX packets 3999 bytes 23367972 (23.3 MB) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 +... +``` + +## 2.2. Deploy OAI gNB in RF simulator mode and in Standalone Mode ## + +```bash +$ docker-compose up -d oai-gnb +rfsim5g-oai-nrf is up-to-date +rfsim5g-oai-spgwu is up-to-date +rfsim5g-oai-ext-dn is up-to-date +Creating rfsim5g-oai-gnb ... done +``` + +Wait for a bit. + +```bash +$ docker-compose ps -a + Name Command State Ports +------------------------------------------------------------------------------------------------- +rfsim5g-mysql docker-entrypoint.sh mysqld Up (healthy) 3306/tcp, 33060/tcp +rfsim5g-oai-amf /bin/bash /openair-amf/bin ... Up (healthy) 38412/sctp, 80/tcp, 9090/tcp +rfsim5g-oai-ext-dn /bin/bash -c apt update; ... Up (healthy) +rfsim5g-oai-gnb /opt/oai-gnb/bin/entrypoin ... Up (healthy) +rfsim5g-oai-nrf /bin/bash /openair-nrf/bin ... Up (healthy) 80/tcp, 9090/tcp +rfsim5g-oai-smf /bin/bash -c /openair-smf/ ... Up (healthy) 80/tcp, 8805/udp, 9090/tcp +rfsim5g-oai-spgwu /openair-spgwu-tiny/bin/en ... Up (healthy) 2152/udp, 8805/udp +``` + +## 2.3. Deploy OAI NR-UE in RF simulator mode and in Standalone Mode ## + +```bash +$ docker-compose up -d oai-nr-ue +rfsim5g-mysql is up-to-date +rfsim5g-oai-nrf is up-to-date +rfsim5g-oai-spgwu is up-to-date +rfsim5g-oai-ext-dn is up-to-date +rfsim5g-oai-gnb is up-to-date +Creating rfsim5g-oai-nr-ue ... done +``` + +Wait for a bit. + +```bash +$ docker-compose ps -a + Name Command State Ports +------------------------------------------------------------------------------------------------- +rfsim5g-mysql docker-entrypoint.sh mysqld Up (healthy) 3306/tcp, 33060/tcp +rfsim5g-oai-amf /bin/bash /openair-amf/bin ... Up (healthy) 38412/sctp, 80/tcp, 9090/tcp +rfsim5g-oai-ext-dn /bin/bash -c apt update; ... Up (healthy) +rfsim5g-oai-gnb /opt/oai-gnb/bin/entrypoin ... Up (healthy) +rfsim5g-oai-nr-ue /opt/oai-nr-ue/bin/entrypo ... Up (healthy) +rfsim5g-oai-nrf /bin/bash /openair-nrf/bin ... Up (healthy) 80/tcp, 9090/tcp +rfsim5g-oai-smf /bin/bash -c /openair-smf/ ... Up (healthy) 80/tcp, 8805/udp, 9090/tcp +rfsim5g-oai-spgwu /openair-spgwu-tiny/bin/en ... Up (healthy) 2152/udp, 8805/udp +``` + +Making sure the OAI UE is connected: + +```bash +$ docker exec -it rfsim5g-oai-nr-ue /bin/bash +root@bb4d400a832d:/opt/oai-nr-ue# ifconfig +eth0: flags=4163 mtu 1500 + inet 192.168.71.137 netmask 255.255.255.192 broadcast 192.168.71.191 + ether 02:42:c0:a8:47:89 txqueuelen 0 (Ethernet) + RX packets 224259 bytes 5821372018 (5.8 GB) + RX errors 0 dropped 0 overruns 0 frame 0 + TX packets 235916 bytes 7848786376 (7.8 GB) + TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 + +lo: flags=73 mtu 65536 + inet 127.0.0.1 netmask 255.0.0.0 + loop txqueuelen 1000 (Local Loopback) + 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 + +oaitun_ue1: flags=4305 mtu 1500 + inet 12.1.1.2 netmask 255.255.255.0 destination 12.1.1.2 + unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (UNSPEC) + 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 +``` + +**CAUTION: THESE NEXT FEW COMMANDS ARE A HACK. RAN developers SHALL FIX THIS!** + +```bash +$ docker exec -it rfsim5g-oai-nr-ue /bin/bash + +# Check the current routes + +root@bb4d400a832d:/opt/oai-nr-ue# ip route +default via 192.168.71.129 dev eth0 +12.1.1.0/24 dev oaitun_ue1 proto kernel scope link src 12.1.1.2 +192.168.71.128/26 dev eth0 proto kernel scope link src 192.168.71.137 + +# Remove the default and PDN routes + +root@bb4d400a832d:/opt/oai-nr-ue# ip route del default +root@bb4d400a832d:/opt/oai-nr-ue# ip route del 12.1.1.0/24 + +# Force the default route through oaitun_ue1 tunnel + +root@bb4d400a832d:/opt/oai-nr-ue# ip route add default via 12.1.1.2 dev oaitun_ue1 + +# Check the new routes + +root@bb4d400a832d:/opt/oai-nr-ue# ip route +default via 12.1.1.2 dev oaitun_ue1 +192.168.71.128/26 dev eth0 proto kernel scope link src 192.168.71.137 +``` + +# 3. Check traffic # + +## 3.1. Check your Internet connectivity ## + +```bash +$ docker exec -it rfsim5g-oai-nr-ue /bin/bash +root@bb4d400a832d:/opt/oai-nr-ue# ping -I oaitun_ue1 -c 10 www.lemonde.fr +PING s2.shared.global.fastly.net (151.101.122.217) from 12.1.1.2 oaitun_ue1: 56(84) bytes of data. +64 bytes from 151.101.122.217 (151.101.122.217): icmp_seq=1 ttl=53 time=64.5 ms +64 bytes from 151.101.122.217 (151.101.122.217): icmp_seq=2 ttl=53 time=37.0 ms +64 bytes from 151.101.122.217 (151.101.122.217): icmp_seq=3 ttl=53 time=43.2 ms +64 bytes from 151.101.122.217 (151.101.122.217): icmp_seq=4 ttl=53 time=43.2 ms +64 bytes from 151.101.122.217 (151.101.122.217): icmp_seq=5 ttl=53 time=54.3 ms +64 bytes from 151.101.122.217 (151.101.122.217): icmp_seq=6 ttl=53 time=24.0 ms +64 bytes from 151.101.122.217 (151.101.122.217): icmp_seq=7 ttl=53 time=32.5 ms +64 bytes from 151.101.122.217 (151.101.122.217): icmp_seq=8 ttl=53 time=37.0 ms +64 bytes from 151.101.122.217 (151.101.122.217): icmp_seq=9 ttl=53 time=41.2 ms +64 bytes from 151.101.122.217 (151.101.122.217): icmp_seq=10 ttl=53 time=50.3 ms + +--- s2.shared.global.fastly.net ping statistics --- +10 packets transmitted, 10 received, 0% packet loss, time 9011ms +rtt min/avg/max/mdev = 24.035/42.765/64.557/10.904 ms +``` + +If it does not work, certainly you need to modify the DNS values in the docker-compose. + +But you can also check with the `ext-dn` container (IP address is `192.168.72.135` in docker-compose) + +```bash +$ docker exec -it rfsim5g-oai-nr-ue /bin/bash +root@bb4d400a832d# ping -I oaitun_ue1 -c 2 192.168.72.135 +PING 192.168.72.135 (192.168.72.135) from 12.1.1.2 oaitun_ue1: 56(84) bytes of data. +64 bytes from 192.168.72.135: icmp_seq=1 ttl=63 time=10.9 ms +64 bytes from 192.168.72.135: icmp_seq=2 ttl=63 time=16.5 ms + +--- 192.168.72.135 ping statistics --- +2 packets transmitted, 2 received, 0% packet loss, time 1001ms +rtt min/avg/max/mdev = 10.939/13.747/16.556/2.810 ms +``` + +Let now try to check UDP traffic in Downlink. + +You will need 2 terminals: one in the NR-UE container, one in the ext-dn container. + +## 3.2. Start the `iperf` server inside the NR-UE container ## + +```bash +$ docker exec -it rfsim5g-oai-nr-ue /bin/bash +root@bb4d400a832d:/opt/oai-nr-ue# iperf -B 12.1.1.2 -u -i 1 -s +------------------------------------------------------------ +Server listening on UDP port 5001 +Binding to local address 12.1.1.2 +Receiving 1470 byte datagrams +UDP buffer size: 208 KByte (default) +------------------------------------------------------------ +``` + +## 3.3. Start the `iperf` client inside the ext-dn container ## + +```bash +$ docker exec -it rfsim5g-oai-ext-dn /bin/bash +root@f239e31a0bd0:/# iperf -c 12.1.1.2 -u -i 1 -t 20 -b 500K +------------------------------------------------------------ +Client connecting to 12.1.1.2, UDP port 5001 +Sending 1470 byte datagrams, IPG target: 22968.75 us (kalman adjust) +UDP buffer size: 208 KByte (default) +------------------------------------------------------------ +[ 3] local 192.168.72.135 port 58800 connected with 12.1.1.2 port 5001 +[ ID] Interval Transfer Bandwidth +[ 3] 0.0- 1.0 sec 64.6 KBytes 529 Kbits/sec +[ 3] 1.0- 2.0 sec 63.2 KBytes 517 Kbits/sec +[ 3] 2.0- 3.0 sec 61.7 KBytes 506 Kbits/sec +[ 3] 3.0- 4.0 sec 63.2 KBytes 517 Kbits/sec +[ 3] 4.0- 5.0 sec 61.7 KBytes 506 Kbits/sec +[ 3] 5.0- 6.0 sec 63.2 KBytes 517 Kbits/sec +[ 3] 6.0- 7.0 sec 61.7 KBytes 506 Kbits/sec +[ 3] 7.0- 8.0 sec 63.2 KBytes 517 Kbits/sec +[ 3] 8.0- 9.0 sec 61.7 KBytes 506 Kbits/sec +[ 3] 9.0-10.0 sec 63.2 KBytes 517 Kbits/sec +[ 3] 10.0-11.0 sec 61.7 KBytes 506 Kbits/sec +[ 3] 11.0-12.0 sec 63.2 KBytes 517 Kbits/sec +[ 3] 12.0-13.0 sec 61.7 KBytes 506 Kbits/sec +[ 3] 13.0-14.0 sec 63.2 KBytes 517 Kbits/sec +[ 3] 14.0-15.0 sec 63.2 KBytes 517 Kbits/sec +[ 3] 15.0-16.0 sec 61.7 KBytes 506 Kbits/sec +[ 3] 16.0-17.0 sec 63.2 KBytes 517 Kbits/sec +[ 3] 17.0-18.0 sec 61.7 KBytes 506 Kbits/sec +[ 3] 18.0-19.0 sec 63.2 KBytes 517 Kbits/sec +[ 3] 19.0-20.0 sec 61.7 KBytes 506 Kbits/sec +[ 3] 0.0-20.0 sec 1.22 MBytes 512 Kbits/sec +[ 3] Sent 872 datagrams +[ 3] Server Report: +[ 3] 0.0-20.0 sec 1.22 MBytes 510 Kbits/sec 0.000 ms 3/ 872 (0%) +``` + +Back on your NR-UE terminal you shall see: + +```bash +[ 3] local 12.1.1.2 port 5001 connected with 192.168.72.135 port 58800 +[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams +[ 3] 0.0- 1.0 sec 63.2 KBytes 517 Kbits/sec 1.113 ms 0/ 44 (0%) +[ 3] 1.0- 2.0 sec 61.7 KBytes 506 Kbits/sec 1.466 ms 0/ 43 (0%) +[ 3] 2.0- 3.0 sec 63.2 KBytes 517 Kbits/sec 1.770 ms 0/ 44 (0%) +[ 3] 3.0- 4.0 sec 61.7 KBytes 506 Kbits/sec 1.378 ms 0/ 43 (0%) +[ 3] 4.0- 5.0 sec 63.2 KBytes 517 Kbits/sec 1.614 ms 0/ 44 (0%) +[ 3] 5.0- 6.0 sec 63.2 KBytes 517 Kbits/sec 1.427 ms 0/ 44 (0%) +[ 3] 6.0- 7.0 sec 60.3 KBytes 494 Kbits/sec 1.507 ms 1/ 43 (2.3%) +[ 3] 7.0- 8.0 sec 63.2 KBytes 517 Kbits/sec 1.409 ms 0/ 44 (0%) +[ 3] 8.0- 9.0 sec 61.7 KBytes 506 Kbits/sec 1.525 ms 0/ 43 (0%) +[ 3] 9.0-10.0 sec 63.2 KBytes 517 Kbits/sec 1.393 ms 0/ 44 (0%) +[ 3] 10.0-11.0 sec 61.7 KBytes 506 Kbits/sec 1.377 ms 0/ 43 (0%) +[ 3] 11.0-12.0 sec 63.2 KBytes 517 Kbits/sec 1.501 ms 0/ 44 (0%) +[ 3] 12.0-13.0 sec 61.7 KBytes 506 Kbits/sec 1.788 ms 0/ 43 (0%) +[ 3] 13.0-14.0 sec 63.2 KBytes 517 Kbits/sec 1.466 ms 0/ 44 (0%) +[ 3] 14.0-15.0 sec 61.7 KBytes 506 Kbits/sec 1.381 ms 0/ 43 (0%) +[ 3] 15.0-16.0 sec 61.7 KBytes 506 Kbits/sec 1.417 ms 1/ 44 (2.3%) +[ 3] 16.0-17.0 sec 61.7 KBytes 506 Kbits/sec 1.569 ms 0/ 43 (0%) +[ 3] 17.0-18.0 sec 63.2 KBytes 517 Kbits/sec 1.492 ms 1/ 45 (2.2%) +[ 3] 18.0-19.0 sec 61.7 KBytes 506 Kbits/sec 1.376 ms 0/ 43 (0%) +[ 3] 19.0-20.0 sec 61.7 KBytes 506 Kbits/sec 1.589 ms 0/ 43 (0%) +[ 3] 0.0-20.0 sec 1.22 MBytes 510 Kbits/sec 1.551 ms 3/ 872 (0.34%) +``` + +The `500 Kbits/sec` value may change depending on your CPU power! + +# 4. Un-deployment # + +```bash +$ docker-compose down +Stopping rfsim5g-oai-nr-ue ... done +Stopping rfsim5g-oai-gnb ... done +Stopping rfsim5g-oai-ext-dn ... done +Stopping rfsim5g-oai-smf ... done +Stopping rfsim5g-oai-amf ... done +Stopping rfsim5g-oai-spgwu ... done +Stopping rfsim5g-oai-nrf ... done +Stopping rfsim5g-mysql ... done +Removing rfsim5g-oai-nr-ue ... done +Removing rfsim5g-oai-gnb ... done +Removing rfsim5g-oai-ext-dn ... done +Removing rfsim5g-oai-smf ... done +Removing rfsim5g-oai-amf ... done +Removing rfsim5g-oai-spgwu ... done +Removing rfsim5g-oai-nrf ... done +Removing rfsim5g-mysql ... done +Removing network rfsim5g-oai-public-net +Removing network rfsim5g-oai-traffic_net-net +``` diff --git a/ci-scripts/yaml_files/5g_rfsimulator/oai-end-to-end.jpg b/ci-scripts/yaml_files/5g_rfsimulator/oai-end-to-end.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f454a016f624196c87baa431f5974d148ec677be GIT binary patch literal 56238 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 yfY{p};9y!mWx