From 81abd4c31e67f519e91a024f49c0d8bf57d9f11b Mon Sep 17 00:00:00 2001 From: PapaySail <125686203+PapaySail@users.noreply.github.com> Date: Sat, 4 May 2024 20:12:30 +0600 Subject: [PATCH 1/2] fix docker-compose.ue2.yaml --- .../open5gs-compose/docker-compose.ue2.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/deployments/open5gs-compose/docker-compose.ue2.yaml b/docs/deployments/open5gs-compose/docker-compose.ue2.yaml index 28b60083..cc766525 100644 --- a/docs/deployments/open5gs-compose/docker-compose.ue2.yaml +++ b/docs/deployments/open5gs-compose/docker-compose.ue2.yaml @@ -14,7 +14,7 @@ x-ue-env: &ue_env APN: internet SST: 1 SD: "0x222222" - IPERF_HOST: 10.128.0.14 + IPERF_HOST: 172.20.0.1 IPERF_TIME: 30 x-ue-service: &ue_service @@ -36,7 +36,7 @@ services: environment: <<: *ue_env MSISDN: "0000000003" - GNB_HOSTNAME: open5gs-gnb-1 + GNB_HOSTNAME: open5gs-compose-gnb-1 IPERF_PORT: 5201 ue2-04: @@ -44,7 +44,7 @@ services: environment: <<: *ue_env MSISDN: "0000000004" - GNB_HOSTNAME: open5gs-gnb-2 + GNB_HOSTNAME: open5gs-compose-gnb-2 IPERF_PORT: 5202 ue2-05: @@ -52,7 +52,7 @@ services: environment: <<: *ue_env MSISDN: "0000000005" - GNB_HOSTNAME: open5gs-gnb-3 + GNB_HOSTNAME: open5gs-compose-gnb-3 IPERF_PORT: 5203 ue2-06: @@ -60,7 +60,7 @@ services: environment: <<: *ue_env MSISDN: "0000000006" - GNB_HOSTNAME: open5gs-gnb-4 + GNB_HOSTNAME: open5gs-compose-gnb-4 IPERF_PORT: 5204 ue2-07: @@ -68,7 +68,7 @@ services: environment: <<: *ue_env MSISDN: "0000000007" - GNB_HOSTNAME: open5gs-gnb-5 + GNB_HOSTNAME: open5gs-compose-gnb-5 IPERF_PORT: 5205 ue2-08: @@ -76,7 +76,7 @@ services: environment: <<: *ue_env MSISDN: "0000000008" - GNB_HOSTNAME: open5gs-gnb-6 + GNB_HOSTNAME: open5gs-compose-gnb-6 IPERF_PORT: 5206 networks: From 2fdbeb40a1a6b988a0929d74bf209c4b6e656ee9 Mon Sep 17 00:00:00 2001 From: PapaySail <125686203+PapaySail@users.noreply.github.com> Date: Sat, 4 May 2024 21:33:22 +0600 Subject: [PATCH 2/2] turn off tx offload @ new bridge interface --- docs/deployments/open5gs-compose/README.md | 18 +++++++++++++++++- .../deployments/open5gs-compose/README.md | 19 ++++++++++++++++++- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/docs/deployments/open5gs-compose/README.md b/docs/deployments/open5gs-compose/README.md index 05ccb326..719244cc 100644 --- a/docs/deployments/open5gs-compose/README.md +++ b/docs/deployments/open5gs-compose/README.md @@ -15,14 +15,28 @@ docker network create \ --driver=bridge \ --subnet=172.20.0.0/24 \ --gateway=172.20.0.1 \ + -o "com.docker.network.bridge.name"="br-open5gs-main" \ open5gs-main +sudo ethtool -K br-open5gs-main tx off ``` +
Here we turn off tx offload to avoid TCP checksum error in internal packets for iperf tests. +

+ +Apparently, checksum offloading is enabled by default and the kernel postpones csum calculation until the last moment, expecting csum to be calculated in the driver when the packet is sent. But we have a virtual environment and the packet eventually goes to the GTP tunnel on UPF. Obviously, this is the reason why csum is not calculated correctly. + +However, if we disable offloading, the checksum is calculated immediately on iperf and everything works. +

+
+ +
+# To run multiple iperf servers, use this command -# for run multiple iperf servers, use this command +`sudo apt install iperf3` `for i in $(seq 5201 5208); do (iperf3 -s -p $i &) ; done` @@ -67,3 +81,5 @@ when test ended, you can see reports in directory `.deploy/docker/local-data/ipe # stop and remove all containers `make clean` + +`docker network rm open5gs-main` \ No newline at end of file diff --git a/docs/docs-ru_ru/deployments/open5gs-compose/README.md b/docs/docs-ru_ru/deployments/open5gs-compose/README.md index 94203629..3beae550 100644 --- a/docs/docs-ru_ru/deployments/open5gs-compose/README.md +++ b/docs/docs-ru_ru/deployments/open5gs-compose/README.md @@ -25,15 +25,30 @@ docker network create \ --driver=bridge \ --subnet=172.20.0.0/24 \ --gateway=172.20.0.1 \ + -o "com.docker.network.bridge.name"="br-open5gs-main" \ open5gs-main +sudo ethtool -K br-open5gs-main tx off ``` +
Здесь мы отключаем tx offload чтобы не было TCP checksum error на внутренних пакетах, для тестов iperf. +

+ +Видимо дело в том, что по-умолчанию включен offloading расчета контрольных сумм и ядро до последнего откладывает вычисление csum в расчете на то, что csum посчитается в драйвере при отправке пакета. Но у нас виртуальное окружение и пакет в итоге улетает в туннель GTP на UPF. Видимо из-за этого не происходит корректного расчета csum. + +При этом если отключить offloading, то контрольная сумма считается сразу же на iperf и всё работает. + +

+
+ +
# запустите iperf-сервисы +`sudo apt install iperf3` + `for i in $(seq 5201 5208); do (iperf3 -s -p $i &) ; done` # запустите Open5GS @@ -77,3 +92,5 @@ docker network create \ # остановка и удаление всех контейнеров `make clean` + +`docker network rm open5gs-main` \ No newline at end of file